利用Performance Monitor實(shí)現(xiàn)SQL Server調(diào)優(yōu)
性能監(jiān)視的工具有很多,首先介紹Microsoft Windows Server自帶的Performance Monitor. Windows性能監(jiān)視器是一個(gè)很好用的工具,可以實(shí)時(shí)檢查運(yùn)行程序影響計(jì)算機(jī)性能的方式(CPU,ROM,IO等),并通過收集日志數(shù)據(jù)供以后分析使用. 通過性能監(jiān)視能了解系統(tǒng)loading以及這種loading對(duì)系統(tǒng)資源的影響, 分析性能或者資源使用率的變化趨勢(shì), 有效的對(duì)系統(tǒng)做出調(diào)整, 優(yōu)化或者升級(jí). 診斷系統(tǒng)故障或確定優(yōu)化的組件或升級(jí)的步驟, 也可以找出性能瓶頸.
Performance Monitor是一個(gè)系統(tǒng)內(nèi)置的MMC控制臺(tái): 包括系統(tǒng)監(jiān)視器(System Monitor)和性能日志和警報(bào)(Performance Logs and Alerts)兩個(gè)部分. 通過實(shí)時(shí)和日志的方式來記錄服務(wù)器性能. 使用系統(tǒng)監(jiān)視器可以取現(xiàn), 曲方圖或者報(bào)表的方式實(shí)時(shí)查看內(nèi)存, 硬盤, 處理器, 網(wǎng)絡(luò)等各種對(duì)象的性能數(shù)據(jù). 使用性能日志也警報(bào)可以對(duì)計(jì)數(shù)器日志進(jìn)行配置, 記錄性能數(shù)據(jù), 設(shè)置性能警報(bào), 通過設(shè)定性能警報(bào), 可以使系統(tǒng)在某一特定的計(jì)數(shù)器值低于或高于指定的值時(shí)及時(shí)通知系統(tǒng)管理員.
下面簡(jiǎn)單介紹Windows Server 2003下的Performance Monitor, 通過日志記錄性能數(shù)據(jù), 之后分析.
1. 打開:Administrative Tools->Performance,
或SQL Server Profiler->Tools->Performance Monitor,或在運(yùn)行中輸入"perfmon"
2.重要的性能計(jì)數(shù)器
(1). Processor
(2). PhysicalDisk
(3). Memory
(4). Network Interface
(5). SQL Server Access Methods
(6). SQL Server: SQL Statistics
(7). SQL Server: Databases
(8). SQL Server General Statistics
(9). SQL Server Locks
(10). SQL Server Buffer Manager
下表對(duì)重要的性能計(jì)數(shù)器做一個(gè)簡(jiǎn)要的說明:
性能計(jì)數(shù)器: | ||
Performance Object | Counter | Description |
Processor | %processor Time | 指處理器執(zhí)行非閑置線程時(shí)間的百分比,測(cè)量處理器繁忙的時(shí)間 這個(gè)計(jì)數(shù)器設(shè)計(jì)成用來作為處理器活動(dòng)的主要指示器,可以選擇單個(gè)CPU實(shí)例,也可以選擇Total |
Interrupts/sec | 處理器正在處理的來自應(yīng)用程序或硬件的中斷的數(shù)量 | |
PhysicalDisk | % Disk Time |
計(jì)數(shù)器監(jiān)視磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比.在系統(tǒng)監(jiān)視器中,PhysicalDisk: % Disk Time 計(jì)數(shù)器監(jiān)視磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比。如果 PhysicalDisk: % Disk Time 計(jì)數(shù)器的值較高(大于 90%),請(qǐng)檢查 PhysicalDisk: Current Disk Queue Length 計(jì)數(shù)器了解等待進(jìn)行磁盤訪問的系統(tǒng)請(qǐng)求數(shù)量。等待 I/O 請(qǐng)求的數(shù)量應(yīng)該保持在不超過組成物理磁盤的軸數(shù)的 1.5 到 2 倍。大多數(shù)磁盤只有一個(gè)軸,但獨(dú)立磁盤冗余陣列 (RAID) 設(shè) 備通常有多個(gè)軸。硬件 RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為一個(gè)物理磁盤。通過軟件創(chuàng)建的多個(gè) RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為多個(gè)實(shí)例。
可以使用 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值檢測(cè)磁盤子系統(tǒng)中的瓶頸。如果 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值一直很高,則考慮下列事項(xiàng):
1.使用速度更快的磁盤驅(qū)動(dòng)器。
2.將某些文件移至其他磁盤或服務(wù)器。
3.如果正在使用一個(gè) RAID 陣列,則在該陣列中添加磁盤。
計(jì)數(shù)器監(jiān)視磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比.在系統(tǒng)監(jiān)視器中,PhysicalDisk: % Disk Time 計(jì)數(shù)器監(jiān)視磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比。如果 PhysicalDisk: % Disk Time 計(jì)數(shù)器的值較高(大于 90%),請(qǐng)檢查 PhysicalDisk: Current Disk Queue Length 計(jì)數(shù)器了解等待進(jìn)行磁 盤訪問的系統(tǒng)請(qǐng)求數(shù)量。等待 I/O 請(qǐng)求的數(shù)量應(yīng)該保持在不超過組成物理磁盤的軸數(shù)的 1.5 到 2 倍。大多數(shù)磁盤只有一個(gè)軸,但獨(dú)立磁盤冗余陣列 (RAID) 設(shè)備通常有多個(gè)軸。硬件 RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為一個(gè)物理磁盤。通過軟件創(chuàng)建的多個(gè) RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為多個(gè)實(shí)例。 可以使用 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值檢測(cè)磁盤子系統(tǒng)中的瓶頸。如果 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值一直很高,則考慮下列事項(xiàng): 1.使用速度更快的磁盤驅(qū)動(dòng)器。 2.將某些文件移至其他磁盤或服務(wù)器。 3.如果正在使用一個(gè) RAID 陣列,則在該陣列中添加磁盤。 |
Avg.Disk Queue Length | 指讀取和寫入請(qǐng)求(為所選磁盤在實(shí)例間隔中列隊(duì)的)的平均數(shù) | |
Current Disk Queue Length | 指示被掛起的磁盤 I/O 請(qǐng)求的數(shù)量。如果這個(gè)值始終高于 2, 就表示產(chǎn)生了擁塞 | |
Avg.Disk Bytes/Transfer | 寫入或讀取操作時(shí)向磁盤傳送或從磁盤傳出字節(jié)的平均數(shù) | |
Disk Bytes/sec | 在讀寫操作中,從磁盤傳出或傳送到磁盤的字節(jié)速率 | |
Memory | Pages/sec | 被請(qǐng)求頁(yè)面的數(shù)量. |
Available Bytes | 可用物理內(nèi)存的數(shù)量 | |
Committed Bytes | 已分配給物理 RAM 用于存儲(chǔ)或分配給頁(yè)面文件的虛擬內(nèi)存 | |
Pool Nonpaged Bytes | 未分頁(yè)池系統(tǒng)內(nèi)存區(qū)域中的 RAM 數(shù)量 | |
Page Faults/sec | 是每秒鐘出錯(cuò)頁(yè)面的平均數(shù)量 | |
Network Interface | Bytes Received/sec | 使用本網(wǎng)絡(luò)適配器接收的字節(jié)數(shù) |
Bytes Sent/sec | 使用本網(wǎng)絡(luò)適配器發(fā)送的字節(jié)數(shù) | |
Bytes Total/sec | 使用本網(wǎng)絡(luò)適配器發(fā)送和接收的字節(jié)數(shù) | |
Server | Bytes Received/sec | 把此計(jì)數(shù)器與網(wǎng)絡(luò)適配器的總帶寬相比較,確定網(wǎng)絡(luò)連接是否產(chǎn)生瓶頸 |
SQL Server Access Methods | Page Splits/sec | 每秒由于索引頁(yè)溢出而發(fā)生的頁(yè)拆分?jǐn)?shù).如果發(fā)現(xiàn)頁(yè)分裂的次數(shù)很多,考慮提高Index的填充因子.數(shù)據(jù)頁(yè)將會(huì)有更多的空間保留用于做數(shù)據(jù)的填充,從而減少頁(yè)拆分 |
Pages Allocated/sec | 在此 SQL Server 實(shí)例的所有數(shù)據(jù)庫(kù)中每秒分配的頁(yè)數(shù)。這些頁(yè)包括從混合區(qū)和統(tǒng)一區(qū)中分配的頁(yè) | |
Full Scans/sec | 每秒不受限制的完全掃描數(shù). 這些掃描可以是基表掃描,也可以是全文索引掃描 | |
SQL Server: SQL Statistics | Batch Requests/Sec | 每秒收到的 Transact-SQL 命令批數(shù)。這一統(tǒng)計(jì)信息受所有約束(如 I/O、用戶數(shù)、高速緩存大小、請(qǐng)求的復(fù)雜程度等)影響。 批處理請(qǐng)求數(shù)值高意味著吞吐量 |
SQL Compilations/Sec | 每秒的編譯數(shù)。表示編譯代碼路徑被進(jìn)入的次數(shù)。包括 SQL Server 中語句級(jí)重新編譯導(dǎo)致的編譯。當(dāng) SQL Server 用戶活動(dòng)穩(wěn)定后, 該值將達(dá)到穩(wěn)定狀態(tài) |
|
Re-Compilations/Sec | 每秒語句重新編譯的次數(shù)。計(jì)算語句重新編譯被觸發(fā)的次數(shù)。一般來說,這個(gè)數(shù)最好較小,存儲(chǔ)過程在理想情況下應(yīng)該只編譯一次, 然后執(zhí)行計(jì)劃被重復(fù)使用. 如果該計(jì)數(shù)器的值較高,或許需要換個(gè)方式編寫存儲(chǔ)過程,從而減少重編譯的次數(shù) |
|
SQL Server: Databases | Log Flushes/sec | 每秒日志刷新數(shù)目 |
Active Transactions | 數(shù)據(jù)庫(kù)的活動(dòng)事務(wù)數(shù) | |
Backup/Restore Throughput/sec | 每秒數(shù)據(jù)庫(kù)的備份和還原操作的讀取/寫入吞吐量。例如,并行使用多個(gè)備份設(shè)備或使用更快的設(shè)備時(shí),可以測(cè)量數(shù)據(jù)庫(kù)備份操作性能的變化情況。 數(shù)據(jù)庫(kù)的備份或還原操作的吞吐量可以確定備份和還原操作的進(jìn)程和性能 |
|
SQL Server General Statistics | User Connections | 系統(tǒng)中活動(dòng)的SQL連接數(shù). 該計(jì)數(shù)器的信息可以用于找出系統(tǒng)的最大并發(fā)用戶數(shù) |
Temp Tables Creation Rate | 每秒創(chuàng)建的臨時(shí)表/表變量的數(shù)目 | |
Temp Tables For Destruction | 等待被清除系統(tǒng)線程破壞的臨時(shí)表/表變量數(shù) | |
SQL Server Locks |
Number of Deadlocks/sec | 指每秒導(dǎo)致死鎖的鎖請(qǐng)求數(shù). 死鎖對(duì)于應(yīng)用程序的可伸縮性非常有害, 并且會(huì)導(dǎo)致惡劣的用戶體驗(yàn). 該計(jì)數(shù)器必須為0 |
Average Wait Time (ms) | 每個(gè)導(dǎo)致等待的鎖請(qǐng)求的平均等待時(shí)間 | |
Lock requests/sec | 鎖管理器每秒請(qǐng)求的新鎖和鎖轉(zhuǎn)換數(shù). 通過優(yōu)化查詢來減少讀取次數(shù), 可以減少該計(jì)數(shù)器的值 | |
SQL Server:Memory Manager | Total Server Memory (KB) | 從緩沖池提交的內(nèi)存(這不是 SQL Server 使用的總內(nèi)存) |
Target Server Memory (KB) | 服務(wù)器能夠使用的動(dòng)態(tài)內(nèi)存總量 | |
SQL Cache Memory(KB) | 服務(wù)器正在用于動(dòng)態(tài) SQL 高速緩存的動(dòng)態(tài)內(nèi)存總數(shù) | |
Memory Grants Pending | 指每秒等待工作空間內(nèi)存授權(quán)的進(jìn)程數(shù). 該計(jì)數(shù)器應(yīng)該盡可能接近0,否則預(yù)示可能存在著內(nèi)存瓶頸 | |
SQL Server Buffer Manager | Buffer Cache Hit Ratio | 緩存命中率,在緩沖區(qū)高速緩存中找到而不需要從磁盤中讀取(物理I/O)的頁(yè)的百分比. 如果該值較低則可能存在內(nèi)存不足或不正確的索引 |
Page Reads/sec | 每秒發(fā)出的物理數(shù)據(jù)庫(kù)頁(yè)讀取數(shù)。此統(tǒng)計(jì)信息顯示的是所有數(shù)據(jù)庫(kù)間的物理頁(yè)讀取總數(shù)。由于物理 I/O 的開銷大,可以通過使用更大的數(shù)據(jù)緩存、智能索引、更有效的查詢或更改數(shù)據(jù)庫(kù)設(shè)計(jì)等方法,將開銷降到最低 | |
Page Writes/sec | 每秒執(zhí)行的物理數(shù)據(jù)庫(kù)頁(yè)寫入數(shù) | |
Page Life Expectancy | 頁(yè)若不被引用將在緩沖池中停留的秒數(shù) | |
Lazy Writes/Sec | 每秒被緩沖區(qū)管理器的惰性編寫器寫入的緩沖區(qū)數(shù) | |
Checkpoint Pages/Sec | 由要求刷新所有臟頁(yè)的檢查點(diǎn)或其他操作每秒刷新到磁盤的頁(yè)數(shù) | |
提示:
當(dāng)監(jiān)視Windows Server或SQL Server以調(diào)查與性能有關(guān)的問題時(shí),請(qǐng)首選關(guān)注一下硬件的三方面:
(1) CPU(處理器使用率)
(2) RAM(內(nèi)存使用率)
(3) HDD(磁盤活動(dòng)即IO)
3.建立監(jiān)視
下面要建立監(jiān)視(我監(jiān)視的HP Server配置為:Intel 4x4 x 3.0 GHz/RAM 16.0G,業(yè)務(wù)系統(tǒng)為OLTP).
(1) 在performance->Performance Logs and Alerts->New Log Setting...
(2) General Tab->Add Counters,添加需要監(jiān)測(cè)的計(jì)數(shù)器(可參考如上的計(jì)數(shù)器列表)
(3) General Tab->Interval,設(shè)置監(jiān)測(cè)的時(shí)間間隔(默認(rèn)是15s)
(4) Log Files Tab->Log file type,選擇Log File保存的方式(text File,Binary File,SQL Database),這里我選擇text File(Tab delimited).
(5) Schedule Tab,設(shè)置監(jiān)測(cè)的開始時(shí)間及結(jié)束時(shí)間.
4.分析(我做測(cè)試監(jiān)測(cè)的時(shí)間段(2010/7/7 10:30-23:59))
在監(jiān)測(cè)一段時(shí)間之后,你就會(huì)得到Server重要的性能計(jì)數(shù)器信息,接下來就可以分析Server的性能. 我是借助數(shù)據(jù)透視圖來做的,看起來會(huì)比較直觀.
4.1 CPU使用率.分析%Processor Time(_Total)(所用時(shí)間的百分比,橫軸取時(shí)間,豎軸取%Processor Time)
如下圖在2010/7/7 10:30-12:40和2010/7/7 16:44-18:48這兩段時(shí)間內(nèi)CPU的使用率很高基本上都在50%以上.尤其在17:00-17:12,17:53-18:00CPU很繁忙,在這段時(shí)間會(huì)有大量的事務(wù)需要處理(T-SQL查詢,SP,后臺(tái)job, User操作等等).
如果CUP使用率一直居高不下(持續(xù)80%到90%的狀態(tài)),就要考慮升級(jí)CPU, 增加更多的處理器或者系統(tǒng)調(diào)優(yōu)(建議先做系統(tǒng)調(diào)優(yōu),升級(jí)硬件需要增加額外的成本).
4.2 磁盤I/O(%Disk Time,磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比)
監(jiān)視磁盤活動(dòng)涉及到兩個(gè)主要方面:
(1)監(jiān)視磁盤I/O及檢測(cè)是否有過度換頁(yè)
(2)隔離SQL Server產(chǎn)生的磁盤活動(dòng)
從做的數(shù)據(jù)透視圖來看,磁盤I/O的讀寫很清閑,只在11:58,15:00,18:00,23:45左右(圖上沒有截出來)會(huì)有較大的IO.
如果磁盤I/O很高(>90%),則考慮更換快速磁盤(如固態(tài)硬盤等).
請(qǐng)參考微軟給出的解決方案:
可以對(duì)下面兩個(gè)計(jì)數(shù)器進(jìn)行監(jiān)視以確定磁盤活動(dòng):
- PhysicalDisk: % Disk Time
- PhysicalDisk: Avg. Disk Queue Length
在系統(tǒng)監(jiān)視器中,PhysicalDisk: % Disk Time 計(jì)數(shù)器監(jiān)視磁盤忙于讀/寫活動(dòng)所用時(shí)間的百分比。如果 PhysicalDisk: % Disk Time 計(jì)數(shù)器的值較高(大于 90%),請(qǐng)檢查PhysicalDisk: Current Disk Queue Length 計(jì)數(shù)器了解等待進(jìn)行磁盤訪問的系統(tǒng)請(qǐng)求數(shù)量。等待 I/O 請(qǐng)求的數(shù)量應(yīng)該保持在不超過組成物理磁盤的軸數(shù)的 1.5 到 2 倍。大多數(shù)磁盤只有一個(gè)軸,但獨(dú)立磁盤冗余陣列 (RAID) 設(shè)備通常有多個(gè)軸。硬件 RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為一個(gè)物理磁盤。通過軟件創(chuàng)建的多個(gè) RAID 設(shè)備在系統(tǒng)監(jiān)視器中顯示為多個(gè)實(shí)例。
可以使用 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值檢測(cè)磁盤子系統(tǒng)中的瓶頸。如果 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器的值一直很高,則考慮下列事項(xiàng):
- 使用速度更快的磁盤驅(qū)動(dòng)器。
- 將某些文件移至其他磁盤或服務(wù)器。
- 如果正在使用一個(gè) RAID 陣列,則在該陣列中添加磁盤。
如果使用 RAID 設(shè)備,% Disk Time 計(jì)數(shù)器會(huì)指示大于 100% 的值。如果出現(xiàn)這種情況,則使用 PhysicalDisk: Avg.Disk Queue Length 計(jì)數(shù)器來確定等待進(jìn)行磁盤訪問的平均系統(tǒng)請(qǐng)求數(shù)量。
I/O 依賴的應(yīng)用程序或系統(tǒng)可能會(huì)使磁盤持續(xù)處于活動(dòng)狀態(tài)。
監(jiān)視 Memory: Page Faults/sec 計(jì)數(shù)器可以確保磁盤活動(dòng)不是由分頁(yè)導(dǎo)致的。在 Windows 中,換頁(yè)的原因包括:
- 配置進(jìn)程占用了過多內(nèi)存。
- 文件系統(tǒng)活動(dòng)。
如果在同一硬盤上有多個(gè)邏輯分區(qū),請(qǐng)使用 Logical Disk 計(jì)數(shù)器而非 Physical Disk 計(jì)數(shù)器。查看邏輯磁盤計(jì)數(shù)器有助于確定哪些文件被頻繁訪問。當(dāng)發(fā)現(xiàn)磁盤有大量讀/寫活動(dòng)時(shí),請(qǐng)查看讀寫專用計(jì)數(shù)器以確定導(dǎo)致每個(gè)邏輯卷負(fù)荷增加的磁盤活動(dòng)類型,例如,Logical Disk: Disk Write Bytes/sec。
隔離 SQL Server 產(chǎn)生的磁盤活動(dòng)
可以進(jìn)行監(jiān)視以確定由 SQL Server 組件生成的 I/O 活動(dòng)量的兩個(gè)計(jì)數(shù)器為:
- SQL Server:Buffer Manager:Page reads/sec
- SQL Server:Buffer Manager:Page writes/sec
在系統(tǒng)監(jiān)視器中,這些計(jì)數(shù)器通過檢查以下操作的性能監(jiān)視由 SQL Server 組件生成的 I/O 活動(dòng)量。
- 向磁盤寫入頁(yè)
- 從磁盤讀取頁(yè)
如果這些計(jì)數(shù)器的值達(dá)到硬件 I/O 子系統(tǒng)的容量限制,則需要減小這些值,方法是調(diào)整應(yīng)用程序或數(shù)據(jù)庫(kù)以減少 I/O 操作(如索引覆蓋、索引優(yōu)化或規(guī)范化),增加硬件的 I/O 容量或添加內(nèi)存
4.3 緩存命中率(Buffer Cache Hit Ratio)
根據(jù)檢測(cè)的數(shù)據(jù)來看,緩存命中率基本上在99.99%-100%之間,表示數(shù)據(jù)緩存幾乎滿足所有的數(shù)據(jù)請(qǐng)求.
4.4 頁(yè)拆分(Page Splits/sec,每秒由于索引頁(yè)益處而發(fā)生的頁(yè)拆分?jǐn)?shù))
如果頁(yè)拆分很頻繁,可以考慮增加填充因子(我設(shè)置的Index fill factor為85,也就是每個(gè)頁(yè)會(huì)留有15%的空間做數(shù)據(jù)填充).
從我做的檢測(cè)來看,只有在很少的時(shí)間段內(nèi)會(huì)有較大的頁(yè)拆分,此時(shí)可能會(huì)有大量的數(shù)據(jù)事務(wù)操作.總體來看性能還好.
4.5 每秒日志刷新數(shù)目(Log Flushes/sec)
日志刷新發(fā)生在當(dāng)transaction提交, 數(shù)據(jù)從日志緩存寫入磁盤日志文件時(shí). 應(yīng)該盡可能的減少日志刷新.
如果檢測(cè)到數(shù)值一直很高的話,說明transaction非常活躍,就要減少transaction數(shù).
這里有一個(gè)簡(jiǎn)單的示例來說明:
比如說要向Table中Insert 1w條數(shù)據(jù)
做法1: 一條一條的Insert,一個(gè)transaction一條. 會(huì)產(chǎn)生1w個(gè)log flushes
做法2: 1w條數(shù)據(jù)在一個(gè)transaction Insert.只產(chǎn)生1個(gè)log flushes
明顯的第二種產(chǎn)生的日志刷新會(huì)大大減少,相應(yīng)的磁盤I/O也大大減少.從而有助于提高性能.
總結(jié):
(1). 還有很多的日志記錄沒有做一一的簡(jiǎn)單分析.
(2). Performance Monitor只是提供一個(gè)方法來幫助發(fā)現(xiàn)問題,提供一個(gè)性能優(yōu)化的方向. 一旦影響性能的問題找到了,就可以從這個(gè)方向來著手處理.
(3). 網(wǎng)上有很多性能檢測(cè)的工具,大抵應(yīng)該是把如上所做的工作封裝起來,并且UI上面已經(jīng)分析好,更加的直觀.
(4). 如果寫的有不當(dāng)之處,歡迎指出指正,謝謝!
另:
參考文章:http://www.sql-server-performance.com/tips/sql_server_performance_monitor_coutners_p1.aspx
微軟對(duì)計(jì)數(shù)器更詳細(xì)的描述:http://technet.microsoft.com/en-us/library/ms190382.aspx
本文標(biāo)題:SQL Server性能調(diào)教系列(2)--Server Performance Monitor(Perfmon)
鏈接:http://www.cnblogs.com/changbluesky/archive/2010/07/12/1771210.html
【編輯推薦】
- 對(duì)SQL Server SQL語句進(jìn)行優(yōu)化的10個(gè)原則
- SQL Server分析服務(wù)性能優(yōu)化淺析
- SQL Server MS SQL語句的分類
- 教你如何優(yōu)化SQL語句中的物理查詢
- 轉(zhuǎn)移SQL Server數(shù)據(jù)的實(shí)現(xiàn)