DBA Fundamentals-SQL Server Performance Tuning

2016/9/21 PASS online event DBA Fundamentals: SQL Server Performance Tuning Presented by Pinal Dave 1.資料庫相容性層級影響基數估計(Cardinality Estimation) 提升資料庫相容性層級就可以改善效能 The New and Improved Cardinality Estimator in SQL Server 2014 https://blogs.technet.microsoft.com/dataplatforminsider/2014/03/17/the-new-and-improved-cardinality-estimator-in-sql-server-2014/ Cardinality Estimation (SQL Server) https://msdn.microsoft.com/en-us/library/dn600374.aspx CE(Cardinality Estimation)會預測您的查詢可能傳回的資料列數目。 查詢最佳化工具使用基數預測,來產生最佳查詢計劃。 CE 愈精確,查詢計劃通常愈理想。 In 1998, a major update of the CE was part of Microsoft SQL Server 7.0, for which…

0

Distributed query vs OPENQUERY

Distributed query (Four-part name) and OPENQUERY OpenQuery Distributed Query 速度 一般來說 OPENQUERY較快一點 也很快 Query optimizer 遠端產生執行計畫 本地產生執行計畫 產生local query與remote query 連線數量 只會產生1條連線到遠端取回資料 會產生2條連線 第1條連線先取回統計資訊 第2條連線再取回資料 優點 可以在一個Query裡面JOIN多個不同SQL Server的Table 可能出現issue 如果太多連線使用Distributed Query,則會造成大量等待SOSHOST_MUTEX wait 缺點 雖然有WHERE條件,但SQL Server可能會送出SELECT * FROM the remote table,然後等資料回到本地端才進行filter 權限 只需要設定SELECT資料表的權限 為了產生最佳執行計畫,remote login account必須有以下權限,才能取得完整的統計資訊,若沒有以下權限,則查詢效能則會比較差 To create the best query plans the user must own the…

0

SQL Server Performance study resources

SQL Server Performance study resources SQL Server效能-學習資源 查詢處理架構: Query Processing Architecture https://technet.microsoft.com/en-us/library/cc280362(v=sql.105).aspx 效能監控與分析: Monitor and Tune for Performance https://msdn.microsoft.com/en-us/library/ms189081.aspx Topic Task Monitor SQL Server Components Required steps to monitor any SQL Server component. Performance Monitoring and Tuning Tools Lists the monitoring and tuning tools available with SQL Server. Establish a Performance Baseline How to establish…

0

SQL Server 2008 R2 Performance Dashboard Reports

SQL Server 2008 R2 Performance Dashboard Reports SQL Server 2008 R2效能儀表板報表 Microsoft® SQL Server® 2012 Performance Dashboard Reports https://www.microsoft.com/en-us/download/details.aspx?id=29063 Supported Operating System Windows 7, Windows Server 2008 R2, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2 Works with the following SQL Server versions: SQL Server 2008, SQL Server 2008 R2, SQL Server…

1

Configure Performance Log collection for SQL Server Performance Baseline

Configure Performance Log collection for SQL Server Performance Baseline 設定收集效能計數器記錄檔,建立SQL Server 效能基準線 1.啟動效能監視器 Perfmon 2.新增收集器 Data Collector Sets>User Defined>New>Data Collector Set 3.輸入名稱 (例如 SQLPerfLogBaseline)並選擇 Create from a template (Recommended) 4.範本Template,選擇System Performance 5.指定blg檔存放的根目錄 6.選擇Open Properties for this data collector set 7.按下Finish之後,則出現此視窗 8.在schedule頁籤,新增一個排程,例如每天08:00啟動 9.在Stop Condition頁籤,設定停止條件,例如勾選Overall Duration 16 hours,在Limit限制的區塊,勾選 Restart the data collector set at limits.,勾選 Maximum Size:設定300MB…

0

SQL Server Rowset Trace

Rowset trace(Rowset Provider) Server-Side Trace with file provider(File Provider) 如果是Server-Side Trace則是使用file provider select * from sys.traces where is_rowset = 0 and path is not NULL PS. The file provider is designed with a guarantee that no event data will be lost. Rowset Trace(Rowset Provider) SQL Server Profiler連線到SQL Server啟動的就是Rowset Trace (使用rowset provider) select * from sys.traces…

0

Microsoft Office Access Performance Tuning Guide

1.依據KB209126的建議來最佳化查詢效能。Information about query performance in an Access databasehttp://support.microsoft.com/kb/209126 我們遇到一個案例,當Access使用[更新查詢](Update Query)更新大量的外部Oracle資料時,將[發生錯誤就失敗]設定為[是](change FailOnError to Yes on Query Properties),可以大幅改善執行效能。 2.當Access存取外部資料庫,例如SQL Server,如果可以就使用通過查詢(pass-through query),因為通過查詢可以直接將SQL語句傳送到SQL Server上執行,可以獲得最好的執行效能。How to create an SQL pass-through query in Accesshttp://support.microsoft.com/kb/303968 相同的案例,當Access需要更新大量的外部Oracle資料時,改用通過查詢(pass-through query),執行速度比[發生錯誤就失敗]設定為[是](change FailOnError to Yes on Query Properties)更快速。

0

SQLDiag工具程式Bug-Buffer overrun detected

SQLDiag工具程式Bug-Buffer overrun detected   當SQL Server 2000升級到SP4之後,SQLDiag.exe工具已被更新到SP4的版本,此版本有個Bug,執行後會出現以下的錯誤訊息: 解決方法1微軟的KB902955-此Bug已有hotfix,若要取得此hotfix需連絡Microsoft產品支援服務FIX: 當您執行 Sqldiag.exe 公用程式安裝 SQL Server 2000 SP 4 之後, 您收到 「 取得登錄資訊 」 訊息解決方法2將SQLDiag.exe更名,然後從SQL Server 2000安裝光碟將原始的SQLDiag.exe複製出來使用

0

SQLDiag工具程式的使用

SQLDiag工具程式的使用   前言:SQLDiag是SQL Server內建的診斷收集共用程式, [SQL Server 2005]預設位置:C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLDiag.exe你可以在任何路徑下執行SQLDiag因為此路徑已被加到path系統變數,執行sqldiag -?或sqldiag /?即可顯示參數說明 SQL 2005的sqldiag搭配參數請使用正斜線”/” SQLdiag 可以收集下列類型的診斷資訊:Windows 效能記錄Windows 事件記錄檔SQL Server Profiler 追蹤SQL Server 封鎖資訊SQL Server 組態資訊 http://technet.microsoft.com/zh-tw/library/ms162833.aspx 一般使用:例如: sqldiag /O C:\temp\sqldiag(/O 指定輸出檔案的目錄)最下方會出現2008/07/01 00:34:42.82 SQLDIAG Collection started. Press Ctrl+C to stop.表示正在收集中在此時按下Ctrl+C即可停止收集 收集的資訊會儲存在指定的C:\temp\sqldiag\目錄下,其中數個log_xx.trc檔是從C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\路徑下所複製的 進階收集: 修改並指定xml檔,來收集Performance Counter的資訊 [SQL Server 2000]預設位置:C:\Program Files\Microsoft SQL Server\MSSQL\Binn\SQLDiag.exe切換目錄到此位置後執行sqldiag -?或sqldiag /?即可顯示參數說明SQL 2000的sqldiag搭配參數執行要使用”-“例如:…

0