クエリーを実行すると「クエリー実行中失敗しました。SQL QUERYが指定された時間制限または記憶制限を超えています。 SQLCODE=-666」のエラーメッセージが表示されて実行できないことがあります。
【「SQLCODE=-666」が表示される仕組みについて】
PHPQUERYでのクエリー実行時には、CREATE TABLEを使用している為、通常のACS(エミュレーター)でのSQLよりもオーバーヘッドがかかるような仕組みとなっております。
そのため、データの出力結果の件数が多い、出力フィールド数が多い、結合ファイルの数が多い等、複雑な条件やデータ・フィールド数が多くなるほど当エラーになりやすいです。
この制限に引っかかった場合はクエリーの処理を「中断」ではなく「全くしない」という動きとなりますので、2~3秒でエラーが返ってくるような動きとなっております。
【回避方法】
設定値の説明及び変更方法は下記URLをご参照ください。
https://cs.omni-s.co.jp/hc/ja/articles/4409987129241
【お客様事例】
クエリー処理時間制限と一時記憶域限界の照会はそのままで、クエリー最大件数を1,000,000件から3,000,000件に変更しただけで、10秒で結果が表示されていたクエリーが実行できず、当エラーが表示されるようになったとのご報告がございました。
クエリー最大件数が多くなれば、結果サイズも大きくなりますので、クエリー最大件数を変更するだけではなく、一時記憶域限界の照会も大きくするように設定を変更していただき回避いただきました。
現在運用中のシステムに影響が出ないようにタイムアウトを設定しているという意図もございますので、設定値はお客様にご判断いただくしかございません。
弊社の推奨としてはいきなり2倍3倍に伸ばすより、少しずつタイムアウトを伸ばして様子を見るという手段がよろしいかと思っております。
180~300秒等で運用されているお客様が多いです。
また、EXCELテンプレートは通常のダウンロードよりもメモリ消費が大きい為、EXCELテンプレートを利用し、600秒に設定しているお客様でもタイムアウトが発生したというお問い合わせもございました。
この場合もタイムアウト時間の見直し、または抽出結果の件数を減らしていただき回避しております。
検索条件にRANGEを使用するとタイムアウトが発生するというお問い合わせも多いですので、RANGEを使用する際はご注意ください。
制限なしだとサーバービジー状態を招き、大量のメモリの消費が発生し、運用中の他システムにも影響がでる可能性がございますので、避けた方がよろしいです。
システム設定に関しましてはお客様のサーバー環境、メモリ、作成クエリー等に依存してしまい、一概にはご案内ができないことをご了承ください。
コメント
0件のコメント
サインインしてコメントを残してください。