亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

:【SQL Server 2005 Performance Tuning性能調(diào)

系統(tǒng) 2483 0

原地址:http://www.cnblogs.com/gaizai/archive/2010/01/04/1638325.html

?

2010.01.03,今天開(kāi)始看這本書(shū),剛看了第一章就已經(jīng)有了共鳴的感覺(jué),可能是因?yàn)槲抑坝羞^(guò)兩個(gè)性能優(yōu)化項(xiàng)目的經(jīng)驗(yàn)吧,其實(shí)感覺(jué)最重要的一點(diǎn)就是在第二個(gè)項(xiàng)目?jī)?yōu)化的過(guò)程中刻意去做一些總結(jié),希望接下來(lái)的閱讀會(huì)有更多這個(gè)的共鳴出現(xiàn)。(期待中。。。)

  網(wǎng)絡(luò)上沒(méi)有這本書(shū)的電子版,只有兩章的免費(fèi)試讀, 進(jìn)入試讀地址 ,唉,真不知道以后要像這樣引用文章該如何辦啊?!

  下面是在閱讀過(guò)程中感覺(jué)比較重要的內(nèi)容,并加入了自己的一些體會(huì):

?

【1】出現(xiàn)的一個(gè)名詞“平行運(yùn)算”,SQL的平行運(yùn)算

  平行運(yùn)算 又名 并行計(jì)算(Parallel Computing)

  并行計(jì)算(Parallel Computing)是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程。為執(zhí)行并行計(jì)算,計(jì)算資源應(yīng)包括一臺(tái)配有多處理機(jī)(并行處理)的計(jì)算機(jī)、一個(gè)與網(wǎng)絡(luò)相 連的計(jì)算機(jī)專(zhuān)有編號(hào),或者兩者結(jié)合使用。并行計(jì)算的主要目的是快速解決大型且復(fù)雜的計(jì)算問(wèn)題。此外還包括:利用非本地資源,節(jié)約成本 ― 使用多個(gè)“廉價(jià)”計(jì)算資源取代大型計(jì)算機(jī),同時(shí)克服單個(gè)計(jì)算機(jī)上存在的存儲(chǔ)器限制。

?

【2】性能調(diào)優(yōu)需要哪些技能

  性能調(diào)校不是一件簡(jiǎn)單的事,一般來(lái)說(shuō)需要有廣泛的經(jīng)驗(yàn)與知識(shí),不單單是數(shù)據(jù)庫(kù)的經(jīng)驗(yàn),還要對(duì)商業(yè)邏輯、系統(tǒng)架構(gòu)設(shè)計(jì)、編寫(xiě)應(yīng)用程序、操作系統(tǒng)、架設(shè)網(wǎng)絡(luò)環(huán)境、使用各種偵測(cè)與監(jiān)控工具程序、安全與防毒等,都有基本的了解,才能在復(fù)雜的系統(tǒng)中,找到癥結(jié)所在。

?  體會(huì):還是比較贊同這些知識(shí)結(jié)構(gòu)的,我們要有目的地學(xué)習(xí)這幾個(gè)方面的知識(shí),打開(kāi)視野,對(duì)調(diào)優(yōu)也是有好處的。?

?

【3】摘要:

  因此要做好性能調(diào)校,你需要期待自己不但要深入專(zhuān)精的知識(shí),而且要對(duì)相關(guān)知識(shí)保持高度的興趣,可以廣泛涉獵各個(gè)方面的技能,同時(shí)能夠與人合作。

??  體會(huì):以前一直認(rèn)為優(yōu)化知識(shí)修改幾個(gè)代碼里面的循環(huán)語(yǔ)句,修改幾條SQL語(yǔ)句(把批量的數(shù)據(jù)庫(kù)操作修改成類(lèi)似于Insert Select等)就能了事了,雖然這樣成功優(yōu)化了兩個(gè)系統(tǒng)(并沒(méi)有完全優(yōu)化,只是做研究或者叫練手,因?yàn)橐蟛⒉桓撸灰鼙纫郧坝写蟮男阅芨倪M(jìn)就可以 了),但是一直沒(méi)有想過(guò)string與StringBuilder也會(huì)有這么大的性能問(wèn)題,而且網(wǎng)上已經(jīng)有很多人討論這個(gè)問(wèn)題,而我卻沒(méi)有關(guān)注過(guò),慚愧 啊,所以.Net的知識(shí)也需要加深啊。

?

【4】摘要:

   性能問(wèn)題在開(kāi)發(fā)的程序中就需要注意,尤其是數(shù)據(jù)庫(kù)的設(shè)計(jì),若是數(shù)據(jù)庫(kù)設(shè)計(jì)不良,事后要再修改,可能會(huì)牽動(dòng)整個(gè)程序架構(gòu),所以,一開(kāi)始做好數(shù)據(jù)庫(kù)的設(shè)計(jì)就 非常重要。當(dāng)然,數(shù)據(jù)庫(kù)不應(yīng)該讓前端程序代碼直接訪問(wèn)數(shù)據(jù)表,而是要通過(guò)視圖(view)、存儲(chǔ)過(guò)程(stored?procedure)或用戶(hù)自定義函 數(shù)(user?define?function)來(lái)訪問(wèn),這樣可以提高數(shù)據(jù)表的擴(kuò)充性。
  整個(gè)應(yīng)用程序的開(kāi)發(fā)最好先快速建立測(cè)試系統(tǒng)(prototype),讓用戶(hù)在開(kāi)發(fā)程序中一再測(cè)試,以循環(huán)遞增的方式屢次修正問(wèn)題,提早發(fā)現(xiàn)潛藏的性能問(wèn)題,在開(kāi)發(fā)程序中解決性能問(wèn)題要比系統(tǒng)完成,交付后才發(fā)現(xiàn)性能問(wèn)題,而后需要大改來(lái)得好。

?  體會(huì):對(duì)使用視圖我并不完全贊同,視圖是可以降低系統(tǒng)的耦合,也有效的對(duì)表字段進(jìn)行了權(quán)限控制,我們平常使用視圖的主要目的就是聯(lián)合多個(gè)表,方便查詢(xún);但是這樣的話,表中的索引如何有效地使用呢?

  即使SQL Server2005可以對(duì)視圖進(jìn)行索引,但是也有缺點(diǎn),第一個(gè)是不方便,有限制;第二,如果視圖比較大,索引造成磁盤(pán)空間會(huì)大大增大;

  有時(shí)可以考慮使用存儲(chǔ)過(guò)程,這樣就可以使用表的索引了,又可以對(duì)字段進(jìn)行控制,也可以比較大的解耦,又可以有執(zhí)行緩存,貌似這個(gè)方案不錯(cuò),但是 如果什么都靠存儲(chǔ)過(guò)程,第一很容易就有存儲(chǔ)過(guò)程風(fēng)暴;第二對(duì)分頁(yè)支持不太好;第三,我們的程序的邏輯變化會(huì)比較大,寫(xiě)存儲(chǔ)過(guò)程對(duì)業(yè)務(wù)邏輯的維護(hù)比較麻煩。

  有時(shí)遇到大的邏輯處理,我們會(huì)把一些必要的數(shù)據(jù)先查詢(xún)出來(lái),在進(jìn)行編碼邏輯處理,在進(jìn)行組裝,生成一個(gè)邏輯數(shù)據(jù)。所以我們要根據(jù)不同的需求來(lái)確定使用方法。

?

【5】性能基線

調(diào)校性能的第一個(gè)工作應(yīng)該是建立性能的基線(baseline),所需的類(lèi)型有:
  ·昔日系統(tǒng)正常運(yùn)行時(shí)的數(shù)據(jù)。
  ·調(diào)校前系統(tǒng)的各種數(shù)據(jù)。
  ·用戶(hù)希望達(dá)到的目標(biāo)。
基線是用來(lái)比較的,任何性能調(diào)校的動(dòng)作都應(yīng)該依憑數(shù)據(jù),不要訴諸情緒。

?  體會(huì):在優(yōu)化公司的第二個(gè)項(xiàng)目的時(shí)候就自己感悟到基線了,所以這點(diǎn)我也是很贊同的,是一個(gè)性能測(cè)試和優(yōu)化的前期需要做的工作。

  因?yàn)橛辛嘶€才好做對(duì)比,做比較,也才會(huì)有成就感。

?

【6】摘要

  筆者遇到的大部分狀況是管理者會(huì)挑眼前最節(jié)約成本的事情先做。一般來(lái)說(shuō),就是要工程師著手調(diào)架構(gòu),可能是數(shù)據(jù)庫(kù)的設(shè)計(jì),也可能是程序代碼重載,忙了個(gè)把月后聲明失敗,最后還是花錢(qián)買(mǎi)機(jī)器。這種僅看當(dāng)前最低成本的做法有幾個(gè)弊端:
  ·用戶(hù)苦等一兩個(gè)月,最后還是換機(jī)器,他們會(huì)覺(jué)得工程師能力不足。
  ·實(shí)際上浪費(fèi)了人力成本。
  ·一陣子后,性能問(wèn)題又再度浮現(xiàn)。

?  體會(huì):事前的整體評(píng)估很重要,關(guān)系到成本和各戶(hù)交互中的重要作用。

?

【7】摘要:

   除了以文檔描述基線、調(diào)校的目標(biāo)外,還可以以文檔描述所用的工具,如評(píng)估性能的程序、真實(shí)應(yīng)用程序的片段功能、各種資源的性能監(jiān)視程序、壓力測(cè)試程序 等。同時(shí),有越詳細(xì)的步驟越好。性能調(diào)校可能是一再的錯(cuò)誤嘗試,因?yàn)榇蟛糠值臓顩r都是撲朔迷離的,無(wú)法一眼看出問(wèn)題所在,需要改改這個(gè),看看是否比較好, 再修修那個(gè),看看結(jié)果如何。若沒(méi)有文檔記錄,你可能會(huì)在性能調(diào)校的大迷宮中打轉(zhuǎn),做一些類(lèi)似而重復(fù)的事情,但總理不出頭緒。

  嘗試列出系統(tǒng)中各個(gè)組件合理的性能消耗,可以幫助你理清整個(gè)系統(tǒng)訪問(wèn)中,各個(gè)組件所占的性能消耗比例,哪些部分有可以調(diào)整的空間。另外,再搭配調(diào)整該部分的成本有多高,讓你了解調(diào)整的優(yōu)先級(jí),并對(duì)系統(tǒng)的極限有更佳的認(rèn)識(shí)。

?  體會(huì):對(duì)這段描述是比較贊同的。

  這也得從優(yōu)化公司的第二個(gè)項(xiàng)目說(shuō)起,那個(gè)時(shí)候就做了比較多的前期工作,比如測(cè)試、基線、文檔、分析、猜想、評(píng)估等工作,最后的優(yōu)化就花了一天的時(shí)間,雖然還沒(méi)有優(yōu)化全部的內(nèi)容,但是性能還是有了很大的提高的。

  優(yōu)化后的總結(jié)也是很重要的,可以把優(yōu)化過(guò)程記錄下來(lái),沉淀一些知識(shí),這次我就總結(jié)出一個(gè)比較通用的優(yōu)化流程,改天帖出來(lái)。

?

【8】摘要

性能調(diào)校的步驟——DETECT
現(xiàn)將各步驟的原文列出如下:
  Discover?the?problem:發(fā)現(xiàn)問(wèn)題。
  Explore?the?conditions:探究原因,為問(wèn)題提供明確的定義與定位。
  Track?down?possible?approaches:提供可能的解決方案。
  Execute?the?most?likely?approach:執(zhí)行最有可能的解決方案。
  Check?for?success(如果需要的話,重復(fù)之前的步驟):確認(rèn)解決方案成功與否。
  Tie?up?loose?ends:完成收尾的工作。

?  體會(huì):<1>:這才發(fā)現(xiàn)我之前一個(gè)項(xiàng)目的優(yōu)化步驟和這個(gè)有80%的相似度(在看這本書(shū)之前),這讓我小小開(kāi)心了一下。

      <2>:這再一次證明了我的觀點(diǎn):在開(kāi)始學(xué)一些新知識(shí)的時(shí)候,一定要先自己動(dòng)手去嘗試,不要一開(kāi)始就買(mǎi)一個(gè)《XX入門(mén)》之類(lèi)的書(shū)籍來(lái)看。

      <3>:需要注意一點(diǎn)就是,在接下來(lái)的實(shí)踐中,有意識(shí)的去看看文中的描述是否可以借鑒,通過(guò)這樣的方式來(lái)完善自己的那套調(diào)優(yōu)步驟。

?

【9】摘要

  探究原因,為問(wèn)題提供明確的定義與定位

  確定用戶(hù)的問(wèn)題與需求后,下一步是探究原因,此步驟的重點(diǎn)是“探索(Explore)”、“找尋證據(jù)(Evidence)”、“建立(Establish)”描述整個(gè)問(wèn)題來(lái)龍去脈的假設(shè)。

   當(dāng)你從以上步驟確切了解用戶(hù)的問(wèn)題后,就需要建立問(wèn)題發(fā)生原因的假設(shè)和導(dǎo)致性能不足的運(yùn)行模型,而當(dāng)前這個(gè)步驟便是在搜集證據(jù),以建立并確認(rèn)該假設(shè)。在 這個(gè)階段中,你可以通過(guò)SQL?Server?Management?Studio、SqlDiag.exe、性能計(jì)數(shù)器、事件查看器、 SQL?Profiler、SQL?Server?2005?Performance?Dashbord?Reports、DMV與DMF等工具來(lái)找線索 (以上工具在本書(shū)第3章“性能調(diào)校相關(guān)工具程序”中有詳細(xì)說(shuō)明)。

  這個(gè)步驟的主要任務(wù)是廣泛搜集相關(guān)數(shù)據(jù),但并未深入分析數(shù)據(jù)間的關(guān) 聯(lián)性,這是下一步驟要做的事情。當(dāng)然,要搜集正確而相關(guān)的證據(jù),難免要稍做分析,但不要過(guò)度耗時(shí)在某項(xiàng)單一的事件上。此步驟要的是全貌,盡量了解系統(tǒng)的每 一個(gè)方面,避免深入分析時(shí),漏了某個(gè)關(guān)鍵現(xiàn)象而誤入歧途。

  當(dāng)然,若在這個(gè)階段就發(fā)現(xiàn)重大問(wèn)題,一眼就看出關(guān)鍵點(diǎn),例如,硬件毀損,某 個(gè)硬盤(pán)區(qū)間或內(nèi)存區(qū)間不穩(wěn),某個(gè)程序吃掉所有的內(nèi)存,讓SQL?Server無(wú)內(nèi)存可用,抑或是該程序常常出問(wèn)題,拖垮CPU等,則可以跳過(guò)DETECT 方法論之后的步驟,進(jìn)行深入探討這個(gè)問(wèn)題并予以解決。

  通常性能調(diào)校并不是那么容易一眼看出重大錯(cuò)誤,或許用戶(hù)自己就可以解決,而需要 專(zhuān)門(mén)做性能調(diào)校的情況可能如戰(zhàn)場(chǎng)上不斷帶來(lái)的傷患,第一步要做的是決定傷患的輕重,再?zèng)Q定如何利用有限的資源做最有效的治療。當(dāng)你在前一步獲得用戶(hù)大量的 問(wèn)題后,接下來(lái)就要搜集并探究各種現(xiàn)象,決定輕重緩急,通盤(pán)考慮后,進(jìn)入下一步。

?  體會(huì):摘取這段是有目的的,它說(shuō)明了幾個(gè)知識(shí)點(diǎn):

    第一,建立假設(shè)命題;

    第二,可以看到性能的檢測(cè)使用了那些工具;

    第三,并不深入分析,稍作分析,不耗時(shí)在某個(gè)問(wèn)題上;

    第四,決定輕重緩急;第五,對(duì)一眼就能看出問(wèn)題予以解決。(個(gè)人補(bǔ)充:不過(guò)要回去證明,也就是狹義上的回歸測(cè)試)

?

【10】摘要

   性能調(diào)校的專(zhuān)家們?cè)诮邮茉L問(wèn)時(shí),表示他們最常用的技巧是“二分查找”,也就是“‘區(qū)分’之后再加以‘克服’ (Divide?and?Conquer)”。它可以應(yīng)用在前畫(huà)所述的DETECT?方法論中,尤其是在“提供可能的解決方案”這一步。我們需要在巡回的 程序中分出有用的信息,利用二分法將問(wèn)題局限在某個(gè)范圍,尤其在問(wèn)題蕪蔓龐雜的情況下,要能分解問(wèn)題,通過(guò)已有的知識(shí)與信息,剔除較不可能的部分。

二分法的局限
  ·二分查找算法的局限是數(shù)據(jù)必須要有順序才能做二分查找。同樣地,你對(duì)于系統(tǒng)的知識(shí)要具備廣泛的連續(xù)性,才能在問(wèn)題發(fā)生時(shí),分析問(wèn)題所在的位置。
  ·第二個(gè)局限是你無(wú)法知道是否不小心把問(wèn)題隔離在目標(biāo)區(qū)域以外了,只好從頭再來(lái),這樣會(huì)讓你喪失信心。
  ·最后一個(gè)局限性,也是最大的問(wèn)題所在:某些性能問(wèn)題不單純地以本來(lái)的面目呈現(xiàn),因此分解問(wèn)題時(shí),可能會(huì)被現(xiàn)象蒙蔽。

?  體會(huì):這一段入選的原因就是:在我的頭腦里面就沒(méi)有調(diào)優(yōu)可以使用“二分查找”這樣的概念,雖然文中也說(shuō)了一些缺點(diǎn),但是有機(jī)會(huì)我還是會(huì)去嘗試一下,看看是否有道理的,不過(guò)估計(jì)希望不大。

?

【11】摘要

  完成收尾的工作
  前5個(gè)步驟循環(huán)重復(fù)地執(zhí)行,每一次循環(huán)的結(jié)果都更逼近問(wèn)題的核心,直到達(dá)到性能調(diào)校的目標(biāo)。

  但當(dāng)我們完成目標(biāo)后,依然要注意以下的問(wèn)題:
  ·解決的方式是否有邊際效應(yīng)而造成其他的問(wèn)題?
    例如,為了某類(lèi)的查詢(xún)工作建立了大量的索引,事后原本正常的添加、修改、刪除都出現(xiàn)了性能問(wèn)題。
  ·是否真正根除了問(wèn)題,還是僅表象地頭痛醫(yī)頭,腳痛醫(yī)腳?
    建立問(wèn)題的假設(shè)時(shí),很容易將問(wèn)題特殊化,僅局部地解決該問(wèn)題。例如,加了某個(gè)索引或稍稍改變查詢(xún)語(yǔ)句,舒緩了當(dāng)前的瓶頸,但當(dāng)用戶(hù)稍微增加或采用不同的查詢(xún)方式時(shí),老問(wèn)題就容易復(fù)發(fā)。
  ·是否要建立持續(xù)跟蹤的計(jì)劃?
    當(dāng)你無(wú)法確定已經(jīng)根除問(wèn)題時(shí),那可能就要擬定持續(xù)跟蹤的計(jì)劃了。決定是否要持續(xù)觀察某些計(jì)數(shù)器,跟蹤某些現(xiàn)象是否還會(huì)發(fā)生,若發(fā)生了要如何解決等。如此不但可以讓用戶(hù)安心,更可以讓你知道之前的行為到底有多少效益,下次的性能調(diào)校才能提出更完整的解決方案。

?  體會(huì):這里說(shuō)到的幾點(diǎn)可能是我們平時(shí)會(huì)忽略的問(wèn)題,感覺(jué)第一點(diǎn)最重要了。比如在調(diào)優(yōu)的過(guò)程中發(fā)現(xiàn)是代碼的問(wèn)題,那么在修改代碼的過(guò)程就會(huì)對(duì)原 來(lái)邏輯進(jìn)行修改(例如原來(lái)是對(duì)數(shù)據(jù)庫(kù)進(jìn)行循環(huán)操作造成的性能問(wèn)題,那么調(diào)優(yōu)方案就可能是進(jìn)行批量操作數(shù)據(jù)),這種時(shí)候就無(wú)形中修改了原來(lái)的邏輯,這個(gè)時(shí)候 我們要對(duì)新的邏輯進(jìn)行必要的測(cè)試,其中包括功能測(cè)試和性能測(cè)試。

?

【12】對(duì)上面Detect方法的總結(jié):

  ·對(duì)問(wèn)題的簡(jiǎn)單描述;

  ·建立基線;

  ·假設(shè)(個(gè)人術(shù)語(yǔ):猜想);

  ·決定輕重緩急;

  ·假設(shè)問(wèn)題的計(jì)劃,解決問(wèn)題的計(jì)劃;

  ·驗(yàn)證假設(shè);

  ·擬定新的計(jì)劃;

  ·到底有多少效益;

?

【13】調(diào)優(yōu)基本流程圖

:【SQL Server 2005 Performance Tuning性能調(diào)校】 ?

?

【14】“ 華麗的總結(jié)

  性能調(diào)優(yōu)的核心思想:就像中學(xué)的時(shí)候,給自己出一個(gè)命題,自己再去證明這個(gè)命題。(呵呵,很生動(dòng)吧。O(∩_∩)O~)

?

:【SQL Server 2005 Performance Tuning性能調(diào)校】


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99精品国产高清一区二区 | 99热这里只有成人精品国产 | 免费黄色一级大片 | 国产日韩精品一区二区 | 国产日韩高清一区二区三区 | 美女被cao的视频免费看 | 逼毛片 | 91精品全国免费观看 | 国产主播专区 | 亚洲欧美另类在线视频 | 久草免费精品视频 | 99久久亚洲国产高清观看 | sss欧美华人整片在线观看 | 久99频这里只精品23热 视频 | 日韩精品一区二区三区中文字幕 | 五月天在线网站 | 青青青国产免费线在 | 日本精品欧洲www | 国产一国产一级毛片视频 | 亚洲黄色自拍 | 色综合亚洲欧美在线 | 91精品国产91久久久久福利 | 亚洲精品人成网线在线 | 成人深夜视频在线观看 | 看全色黄大色黄大片 视 | 爱搞逼综合 | 日本在线色视频 | 亚洲一区二区中文字5566 | 亚洲精品一区二区深夜福利 | 久久中文字幕网 | 欧美激情_区二区三区 | 五月婷婷欧美 | 999热在线精品观看全部 | 99青草| 九九在线精品视频xxx | 欧美乱子伦一区二区三区 | 日韩一级视频免费观看 | 天天天做天天天天爱天天想 | 免费视频成人国产精品网站 | 四虎影永久在线观看精品 | 狠狠色噜噜狠狠狠狠五月婷 |