2016-06-27 13 views
2

Azure DiagnosticsがWindowsイベントをストレージテーブル "WADWindowsEventLogsTable"にプッシュしています。Azureログをフィルタリングするときのパフォーマンスが悪い - WCF Data Servicesフィルタ

VisualStudio(2015)とCloudExplorerを使用してこのストレージテーブルをクエリしたいと思います。この表として

は巨大なコンテンツを持って、私は無期限に結果を待っている...ここで

は、クエリのサンプルです:

EventId eq 4096 and Timestamp gt datetime'2016-06-24T08:20:00' and Timestamp lt datetime'2016-06-24T10:00:00' 

私は、このクエリが正しいと仮定?

パフォーマンスを向上させる方法はありますか?

  • フィルタ結果の列?
  • リターンのみTOP X結果?
  • 別の便利なヒント?

私は、より良い方法はそれをスクリプト化することです。例えば..私は私のクエリを構築するために、この小さなC#のプログラムを使用のGaurav Mantri答え、次の


(編集)のPythonを使用して、私はできるだけ多くのUIを使用したいと思います。答えはとても迅速であり、それは私の最初のパフォーマンスの問題を解決する:

static void Main(string[] args) 
    { 
     string startDate = "24 June 2016 8:20:00 AM"; 
     string endDate = "24 June 2016 10:00:00 AM"; 

     string startPKey = convertDateToPKey(startDate); 
     string endPKey = convertDateToPKey(endDate); 
     Debug.WriteLine("(PartitionKey gt '" + startPKey + "'" 
      + " and PartitionKey le '" + endPKey +"')" 
      + " and (EventId eq 4096)" 
      ); 
    } 

    private static string convertDateToPKey(string myDate) 
    { 
     System.DateTime dt = System.Convert.ToDateTime(myDate); 
     long dt2ticks = dt.Ticks; 
     string ticks = System.Convert.ToString(dt2ticks); 
     return "0" + ticks; 
    } 

NB:遠く離れCSVファイルに結果をエクスポートする方法を検索している人、私のようなもの、のために、あなたはこのアイコンがあることを知っている必要がありあなたの答え(と、それは「元に戻す」ではないのです;)):クエリでCloudExplorer-Table-Export action button

答えて

2

、あなたがインデックス化されていないTimestamp属性(のみPartitionKeyRowKey属性がインデックス化されている)をフィルタリングしています。したがって、あなたのクエリは完全なテーブルスキャンを行っています(つまり、第1のレコードから一致するレコードが見つかるまで)、したがって最適化されていません。

完全なテーブルスキャンを避けるため、クエリにはPartitionKeyを使用してください。 WADWindowsEventLogsTableの場合、PartitionKeyは本質的に、日付/時刻値をティックで表します。あなたがしなければならないことは、データを取得する日付/時間範囲を目盛りに変換し、その前に0を追加してからクエリに使用することです。

だからあなたのクエリのようなものになります:

(PartitionKey gt 'from date/time value in ticks prepended with 0' and PartitionKey le 'to date/time value in ticks prepended with 0') and (EventId eq 4096) 

私は、あなたが有用見つけることがいくつかの時間前にそれについてのブログ記事を書いた:http://gauravmantri.com/2012/02/17/effective-way-of-fetching-diagnostics-data-from-windows-azure-diagnostics-table-hint-use-partitionkey/

関連する問題