回答
嗯,SQL Server不按表名跟蹤這些統計數據。但是,您可以查看像sys.dm_exec_query_stats
這樣的DMV,以查看哪些查詢花費的時間最長。
SELECT [sql] = SUBSTRING
(
st.[text],
(s.statement_start_offset/2)+1,
(CASE s.statement_end_offset
WHEN -1 THEN DATALENGTH(CONVERT(NVARCHAR(MAX), st.[text]))
ELSE s.statement_end_offset END
- s.statement_start_offset)/2
), s.*
FROM sys.dm_exec_query_stats AS s
CROSS APPLY sys.dm_exec_sql_text(s.[sql_handle]) AS st
WHERE s.execution_count > 1
AND st.[dbid] = DB_ID('Your_ERP_Database_Name')
ORDER BY total_worker_time*1.0/execution_count DESC;
當然,你可以通過任何你想要的度量訂購,並迅速眼球的第一列,看看您識別任何可疑活動。
你也可以看看sys.dm_exec_procedure_stats
來標識消耗高持續時間或讀取程序。
請記住,這些和其他DMV重置各種事件,包括重新啓動,服務重新啓動等。所以如果你想保持這些指標的趨勢/基準/比較目的的歷史記錄,你將有快照他們自己,或獲得第三方產品(如SQL Sentry Performance Advisor),可以幫助這一點和更多。
聲明:我SQL哨兵工作。
您可以創建一個SQL Server審覈按以下鏈接:
http://msdn.microsoft.com/en-us/library/cc280386(v=sql.105).aspx
@喬希 - 加拉赫 我們** **不知道_SQL服務器AUDIT_的。 謝謝你指出這一點。 在不久的將來,我們將着眼於在SQL Server上實現這一點。不得不跳過幾個認證環節,但應該可以做到。 在短期內,我們會根據** Aaron **提出的命令運行腳本,因爲我們有時間限制。 再次感謝您的回覆 –
SQL Server確實捕獲了您詢問的信息,但它是基於每個索引而不是每個表 - 查看sys.dm_db_index_operational_stats和sys.dm_db_index_usage_stats。您必須根據object_id來聚合數據以獲取表信息。但是,有一些注意事項 - 例如,如果不使用索引(不讀取或不寫入),則不會顯示在輸出中。這些統計信息在實例重新啓動時重置,並且在重建索引時存在導致它們在index_usage_stats中重置的錯誤(https://connect.microsoft.com/SQLServer/feedback/details/739566/rebuilding-an-index-clears-stats-from-sys-dm-db-index-usage-stats)。而且,DMV的輸出之間存在顯着差異 - 請查看Craig Freedman的帖子以獲取更多信息(http://blogs.msdn.com/b/craigfr/archive/2008/10/30/what-is-the-difference-between-sys-dm-db-index-usage-stats-and-sys-dm-db-index-operational-stats.aspx)。
更大的問題是,什麼問題是你想有了這個信息來解決?我同意Aaron的觀點,即尋找花費很長時間的查詢是一個更好的開始優化的地方。但是,我想讓你知道SQL Server確實有這些信息。
我們使用sp_whoisActive從Adam Mechanics blog。
它爲我們提供了一個當前正在服務器上進行的快照,以及語句正在使用的執行計劃。
它易於使用且免費。
- 1. 超時時訪問SQL Server 2008 R2的
- 2. 訪問SQL Server 2008 R2的Linux?
- 3. 遠程訪問SQL Server 2008 R2
- 4. SQL Server 2008 R2和SQL Server 2008 R2 RTM之間的差異
- 5. SQL Server 2008 R2表查詢
- 6. 使用SQL Server Management Studio訪問SQL Server 2008 R2 Express
- 7. SQLDependency SQL Server 2008 R2
- 8. SQL Server 2008 R2 OBJECT_ID
- 9. 從遠程客戶端訪問Windows Server 2008 R2上的SQL Server
- 10. 從SQL Server 2008 R2 Express升級到SQL Server 2008 R2企業
- 11. SQL Server 2008 R2空間查詢
- 12. Windows Server 2008 R2遠程訪問
- 13. Sql Server 2008 R2的DotNetNuke配置問題
- 14. SQL Server 2008 R2連接問題
- 15. SQL Server 2008 R2 - 內存分配問題
- 16. SQL Server 2008 R2複製問題
- 17. SQL Server 2008 R2的透視問題
- 18. SQL Server 2008 R2 - 優化問題
- 19. SQL Server 2000到SQL Server 2008 R2遷移
- 20. SQL Server 2008 R2對SQL Server 2012
- 21. SQL Server 2008 R2中的SQL Server Reporting Services
- 22. Redmine與SQL Server 2008 R2
- 23. WPF和SQL Server 2008 R2 DB
- 24. Sql Server 2008 R2 Reporting Services
- 25. Attunity Terada - Sql Server 2008 R2
- 26. 不能在SQL Server 2008 R2
- 27. sql server 2008 r2 express edition
- 28. SQL Server 2008 R2合併
- 29. SQL Server 2008 R2的性能
- 30. SQL Server 2008 R2的樞軸
感謝您的信息。我們顯然一直在尋找我們已經安裝的MS SQL版本中不存在的功能(我們也運行DB2,Oracle,Informix等) 我們將按照您的建議腳本化這些命令,同時也關注SQL Sentry PA 。 感謝您的回覆 –