6

Azure でホストされているデータベースの場合、データベースで実行されたクエリの最近の履歴を表示できます。これは、Azure portal > [データベース] > [管理] > [管理] > [クエリ パフォーマンス]から実行できます。

残念ながら、そこにある歴史は短い時間枠 (数分) しかカバーしていません。データベースに非クラスター化インデックスを作成するつもりです。そのためには、過去数分間ではなく、典型的な日にデータに対して実行された実際のクエリのログを取得する必要があります。

現在、ページを何度も更新し続け、更新ごとにすべてのクエリを記録する必要があります。それでも、この困難なプロセスの後に取得したログは、実行されたクエリの小さなサブセットのみを反映しています。より長い期間の履歴を表示するオプションはありますか?

ありがとう。

4

2 に答える 2

8

これは、Azure SQL Server データベースで最も実行されたクエリを確認するのに役立つクエリです。

SELECT TOP 10 execution_count, statement_text
FROM (
    SELECT QS.*,
    SUBSTRING(
        ST.text,
        (QS.statement_start_offset/2) + 1,
        ((
            CASE statement_end_offset
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE QS.statement_end_offset END
            - QS.statement_start_offset
        ) /2) 
        + 1
    ) AS statement_text
    FROM sys.dm_exec_query_stats AS QS
    CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
) AS query_stats
WHERE statement_text LIKE 'UPDATE%'
ORDER BY execution_count DESC

ソース:マーチ マッドネス - SQL Azure - sys.dm_exec_query_plan | SQLロックスター | トーマス・ラロック

于 2018-01-23T08:52:25.903 に答える
6

Windows Azure SQL データベースは、サーバー インスタンスの正常性の監視、問題の診断、およびパフォーマンスの調整に使用できるサーバー状態情報を返す動的管理ビュー (DMV) を提供します。

使用可能なビューの一覧については、「システム ビュー (Windows Azure SQL データベース)」を参照してください。

CPU を集中的に使用するクエリ、実行時間の長いクエリ、および I/O を集中的に使用するクエリを見つける方法の例については、SQL Azure データベースのチューニング、パート 2を参照してください。

その他のトラブルシューティングのヒントについては、Windows Azure SQL データベースを使用したクエリのトラブルシューティングと最適化、 I/O パフォーマンスの改善、Windows Azure SQL データベースのパフォーマンスに関する洞察の取得、Windows Azure SQL データベーストラブルシューティングSQL Azure でのブロッキング クエリの検索March Madness – SQL Azureを参照してください。 – sys.dm_exec_query_stats .

また、アプリケーション レベルでのプロファイリングも検討してください。たとえば、「Entity Framework でのデータベース アクティビティのプロファイリング」および「 Entity Framework または Linq-to-SQL を使用する場合の SQL Azure のクエリ プロファイリング」で説明されているように。

高度な監視については、System Center 2012 用の Windows Azure SQL データベース管理パックの展開を検討してください。

于 2013-07-29T14:17:33.713 に答える