SQL Sever 性能调优
checkpoint
dbcc?? dropcleanbuffers??
dbcc?? freeproccache??
dbcc?? freesystemcache('All')
dbcc?? opentran
?
?
如何查看磁盤I/O操作信息
SET STATISTICS IO ON
命令是一個 使 SQL Server 顯示有關由 Transact-SQL 語句生成的磁盤活動量的信息。
我們在分析索引性能的時候,會非常有用。
啟用了這個屬性后,我們在執行 SQL 語句后,會收到類似如下的信息,這有利于我們分析SQL的性能:
(3999 row(s) affected)
表 'ChargeCL'。掃描計數 1,邏輯讀取 9547 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。
其中的 lob 邏輯讀取、lob 物理讀取、lob 預讀 這三個指標是 讀取 text、ntext、image 或大值類型 (varchar(max)、nvarchar(max)、varbinary(max)) 時的指標。
而 邏輯讀取、物理讀取、預讀 是對普通數據頁的讀取。
測試中,釋放緩存的一些方法
尤其查詢語句性能測試時,數據是否被緩存,這是測試中一個重要點。下面幾個命令幫助我們清除緩存。方便測試。
清除緩存有關的命令:
SQL 2000里面除了dbcc unpintable好像就沒有了?? 而且這個操作也不會立即釋放表內存Buffer?
(DBCC?? UNPINTABLE?? does?? not?? cause?? the?? table?? to?? be?? immediately?? flushed?? from?? the?? data?? cache.?? It?? specifies?? that?? all?? of?? the?? pages?? for?? the?? table?? in?? the?? buffer?? cache?? can?? be?? flushed?? if?? space?? is?? needed?? to?? read?? in?? a?? new?? page?? from?? disk.)?
SQL 2005/2008讓DBA能夠更自由的對SQL所占用的內存空間做處理?? 如:?
?????? CHECKPOINT?
將當前數據庫的全部臟頁寫入磁盤。“臟頁”是已輸入緩存區高速緩存且已修改但尚未寫入磁盤的數據頁。CHECKPOINT 可創建一個檢查點,在該點保證全部臟頁都已寫入磁盤,從而在以后的恢復過程中節省時間。
DBCC?? DROPCLEANBUFFERS???
從緩沖池中刪除所有清除緩沖區。
DBCC?? FREEPROCCACHE???
從過程緩存中刪除所有元素。
DBCC FREESYSTEMCACHE?
從所有緩存中釋放所有未使用的緩存條目。SQL Server 2005 數據庫引擎會事先在后臺清理未使用的緩存條目,以使內存可用于當前條目。但是,可以使用此命令從所有緩存中手動刪除未使用的條目。
另外還可以 sp_cursor_list 查看全部游標???
???????DBCC?? OPENTRAN
查看數據庫打開事務狀態等??
?
比如:查看索引的深度SQL 腳本如下:
?
select INDEXPROPERTY (OBJECT_ID('ChargeHeap'),'ChargeHeap_NCInd','IndexDepth')
其中的 'ChargeHeap' 為我們要查看索引所在的表名,'ChargeHeap_NCInd' 為所要查看的索引名,'IndexDepth' 為所要查看的索引屬性。
http://technet.microsoft.com/zh-cn/library/ms187729.aspx 或者我們在 SQL Server Management Studio 中選中我們要查看的索引,然后在右鍵菜單中查看索引的屬性。其中 Fragmentation 標簽頁會有很多我們對
這個索引感興趣的內容
轉載于:https://www.cnblogs.com/zhangxb/archive/2013/05/07/SQLServer.html
總結
以上是生活随笔為你收集整理的SQL Sever 性能调优的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缓慢渐变维度的处理方式
- 下一篇: SQL 结合CASE WHEN 实现二维