SQL Serverパフォーマンスベンチマーククエリを作成します
-
27-10-2019 - |
質問
データベースのパフォーマンスについて何か言う簡単なクエリを探しています
クライアントネットワーク/サーバー/ソフトウェアのパフォーマンスを見つけて、サーバーまたはクライアントが本当に不十分であるか、状況によってはソフトウェアが実行中であると言うためのベースラインを作成するツールを作成しました。
なぜ私たちはこれをしているのですか?
私たちのクライアントの1人で、私たちのソフトウェアは本当にゆっくりとパフォーマンスを発揮していて、彼らは私たちを非難しました。可能なソフトウェアの欠陥を検索した後、問題は実際にはネットワーク速度であることがわかりました。 (ネットワークトラフィックは100マイル離れたVPNにわたってルーティングされました)
私が必要なものは何
Microsoft SQL Serverデータベースのベースラインパフォーマンスを設定する「シンプルな」クエリを探しています。
できれば、データベースが本当に遅い/高速であるか、単に動作しているかどうかを言うクエリ。
私は単純なクエリを作成しました。
select top 50000 * from BigTable
where YEAR(startdate) = 2011 or YEAR(startdate) = 2010
order by table.startdate desc
ここのビッグテーブルは、実際には、私たちのソフトウェアが複雑な更新計算を行うために多くを照会するものです。
このクエリ(100回)を呼び出し、クライアントからタイミングを合わせると、サーバーのパフォーマンスが適切に推測されます。しかし、私はむしろ、いくつかの複雑な結合を使用して、より計算志向のクエリを実行し、実際にサーバーのパフォーマンスについて何かを単純な選択以外の選択について言っています。
解決
同じクエリを使用することをお勧めしますが、クエリの前に以下を設定してください。
Set Statistics IO ON
go
Set Statistics Profile ON
go
Set Statistics Time ON
go
また、SQLプロファイラーを実行して、セッションでCPUを提供するセッションをトレースすることもできます。これは、セッションがワークステーションで実行されている間に、制限されたサーバーレベルの情報を提供するCPU、読み書き、期間を提供します。