none
SSASのディメンション完全処理で、タイムアウトしてしまう RRS feed

  • 質問

  • はじめまして。SSASのエラーで悩んでいます。同じような経験をされた方、いらっしゃらないでしょうか。

    私は、SSISを使って、CSVデータを取り込んで、DBを更新した後、SSASを使って、キューブを更新しています。

    かれこれ半年ほど調子よく動いていたのですが、最近ディメンションの完全処理のところで、クエリがタイムアウトしてしまいます。

    タイムアウトするクエリは、普段は数秒で終わるのに、60分かかってタイムアウトします。

    実際にSSMSで投げてみてもやっぱり時間がかかります。クエリは、以下の通りです。

    SELECT DISTINCT [FT].[A_KBN] AS [FTA_KBN0_0]
    , [MT].[MTA_KBN_NAME1_0] AS [MTA_KBN_NAME1_0]
    , [MT].[MTA_KBN_CD1_1] AS [MTA_KBN_CD1_1]
    FROM [dbo].[T1] AS [FT]
    , (SELECT DISTINCT [A_KBN_NAME] AS [MTA_KBN_NAME1_0]
    , [A_KBN_CD] AS [MTA_KBN_CD1_1] FROM [dbo].[T2]
    ) AS [MT]
    WHERE (([FT].[A_KBN] = [MT].[MTA_KBN_CD1_1]))

    データに原因があると思い、確認したのですが、特におかしなところがなく、SSISから再実行したところ、なぜかタイムアウトせずにうまくいきました。

    一過性のことかと思っていたのですが、3回に1回くらい、うまくいかないときがあります。

    タイムアウトした後、同じデータを読み込むSSISから再実行しただけでもうまくいってしまいます。

    きつねにつままれた感じなのですが、同じような経験をされた方、いらっしゃらないでしょうか。

    このクエリはSSASの中で何をしているものなのでしょうか。それがわかれば、何か糸口がつかめるのではないかと思っています。

    2011年3月29日 1:12

回答

  • 遅いレスポンスですが・・・

    提示のSQLは、SSASのディメンジョンを構築するために
    データベースからデータを抽出している処理です。
    ですので、ここがTIMEOUTということは、DBサーバーで
    何らかの問題が起きていることを疑ってください。

    複雑なクエリでもないので、数秒が60分たってTIMEOUTというのは
    ①テーブルにロックが掛かっている
      SSASは、テーブルデータを読み込むだけなので
      別の取り込み処理や更新処理でデッドロックを起こしている可能性があります。
    ②ネットワークが安定していない
      SSASからは、データベースに対してクライアントとして
      接続しています。この接続で障害が発生していると
      SSAS側ではレスポンス待ちしているのに、DBサーバー側では
      何もしていないという事態が生じることが想像されます。
    ③データベースが固まっている
      データベースが大規模データを処理していてメモリを食いつぶし、
      ほぼ固まっているような状態になっている。
      若しくは、データベースのサービス自体がトラブルを起こしている。
      
    というような状態がケースとして思い浮かびます。

    別のSSASでエラーが起きているのであれば、②が濃厚な感じがします。


    ---------------------------------
    Infospire Kayano
    2011年4月5日 10:42

すべての返信

  • 自己レスです。

    思いだしたのですが、SSASがタイムアウトする前に、別のSSASで全然別のエラーを起こしていた可能性がありました。

    一度失敗しちゃうと、単純に再実行するだけではだめなのでしょうか。ということも考えられるかと思いました。

    2011年3月29日 2:39
  • 遅いレスポンスですが・・・

    提示のSQLは、SSASのディメンジョンを構築するために
    データベースからデータを抽出している処理です。
    ですので、ここがTIMEOUTということは、DBサーバーで
    何らかの問題が起きていることを疑ってください。

    複雑なクエリでもないので、数秒が60分たってTIMEOUTというのは
    ①テーブルにロックが掛かっている
      SSASは、テーブルデータを読み込むだけなので
      別の取り込み処理や更新処理でデッドロックを起こしている可能性があります。
    ②ネットワークが安定していない
      SSASからは、データベースに対してクライアントとして
      接続しています。この接続で障害が発生していると
      SSAS側ではレスポンス待ちしているのに、DBサーバー側では
      何もしていないという事態が生じることが想像されます。
    ③データベースが固まっている
      データベースが大規模データを処理していてメモリを食いつぶし、
      ほぼ固まっているような状態になっている。
      若しくは、データベースのサービス自体がトラブルを起こしている。
      
    というような状態がケースとして思い浮かびます。

    別のSSASでエラーが起きているのであれば、②が濃厚な感じがします。


    ---------------------------------
    Infospire Kayano
    2011年4月5日 10:42
  • IS Kayano さん

    お礼が遅くなり、すみません。

    現象を整理していただき、ありがとうございます。確かにクエリは複雑ではなく、問題ないときは2秒ほどで終了するものですので、

    おっしゃるように、データベースやネットワーク上で何かが起きているということですね。

    大変お手数をおかけするのですが、①②③のどれに当るのか、確認するためには、どこで何を参照すればよいのでしょうか。

    ご教授のほど、よろしくお願いします。

     

    2011年4月25日 13:43