0

クエリは、新しい SQL 2012 サーバーと既存のサーバーからの比較クエリで使用され、新しい 2012 サーバーに変更がないことを検証するために、通貨別にグループ化された上位 500 の口座残高を合計します。

timeout プロパティを |set option|command|900| に設定します。そして無駄に。

以下はエラーの抜粋です。

System.Data.SqlClient.SqlException (0x80131904): タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。System.Data.SqlClient.SqlConnection.OnError (SqlException 例外、ブール型 breakConnection) で System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() で System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj) の System.Data.SqlClient.SqlDataReader.SetMetaData(_SqlMetaDataSet metaData、Boolean moreInfo) .Data.SqlClient.SqlDataReader.

チェックする行数を 500 から 300 に減らそうとしましたが、うまくいくようですが、不一致を強調するには大きなデータセットが理想的です。

また、クエリを別のものに変更して、より小さな結果セットに分割するか、代替案を作成することも検討しています

誰かがクエリを最適化するためのより良い解決策を持っている場合、クエリは以下のとおりです。

       select 
       TOP 1000 fab.DateKey,be.BK_ActOId,be.PtId,be.PDesc,
       be.OId,be.ODesc,be.SubOId,be.SubODesc,
       rc.Currency,SUM(CASE WHEN rc.Currency = '_NA' THEN FAB.Balance ELSE 0 END) as       bal_OrigCcy
       ,SUM(CASE WHEN rc.Currency = 'AUD' THEN FAB.Balance ELSE 0 END) as bal_AUD
       ,SUM(CASE WHEN rc.Currency = 'GBP' THEN FAB.Balance ELSE 0 END) as bal_GBP
       ,SUM(CASE WHEN rc.Currency = 'SGD' THEN FAB.Balance ELSE 0 END) as bal_SGD
       ,SUM(CASE WHEN rc.Currency = 'USD' THEN FAB.Balance ELSE 0 END) as bal_USD 
       from olap.v_FactAccB fab 
       inner join OLAP.v_DimCur dc on dc.CurrencyKey = fab.BalanceCurrencyKey 
       inner join olap.v_DimReportingCur rc on rc.CurrencyKey =          fab.ReportingCurrencyKey 
       inner join OLAP.v_DimBusinessEntity be on be.BusinessEntityKey = fab.BusinessEntityKey 
     and rc.Currency in ('_NA', 'AUD', 'GBP', 'SGD','USD') 
     and fab.DateKey = 20130912 
     and fab.PlatformKey = 1 
     group by fab.DateKey, be.BK_ActOId, be.PId, be.PDesc
    ,be.OId, be.ODesc, be.SubOId, be.SubODesc, rc.Currency 
     order by fab.DateKey, be.BK_ActOId, be.PId, be.PDesc, be.OId, be.ODesc, be.SubOId,    be.SubODesc, rc.Curr

上記以外の選択肢がある人はいますか

4

1 に答える 1