2016-11-28 10 views
1

&を検索して1日以上過ごした後、ここで質問する時間が問題になります。Firebirdのアップデートステートメントフリーズ

私たちはFirebirdを6年以上使用していますが、現在のバージョン2.5.2では長時間更新されていますが、UPDATEステートメントで問題が発生しました。

SQLステートメントは、 "where"条件が主キーで使用されていてもOKです。

問題:そのフリーズFlamerobinまたはIBQから直接
a)は、PHPスクリプトから、それは内部サーバーエラー500
Bを返す)を実行し、すべての

    で応答していない:アップデートはをクリックした後立ち往生に起こっています
  1. ヒント:右のクリーンFirebirdの後に取り組んでいるワーキング波平SQLは(&起動を停止)が、その行くながら再び立ち往生した後
  2. ヒント:選択があるか、問題が
  3. ヒントがUPDATEのみです:Iディdすべてここに記載されていますhttps://www.ibphoenix.com/resources/documents/how_to/doc_5 リプルンプの後に エラーが発生しましたが、問題が発生しました。
  4. ヒント:より多くのデータベースファイルこれは、1つのサーバー上の1つのDBファイル内の1つのテーブルに対してのみ発生します。何をチェックするために、ほとんど失われたアイデアのうち、

    2016-11-28T14:25:28.4410 (9473:0x7f1489cb1f08) PREPARE_STATEMENT 
        phones.fdb (ATT_273856, VILAS:NONE, UTF8, TCPv4:10.1.1.195) 
        /usr/bin/flamerobin:10868 
         (TRA_78838, CONCURRENCY | WAIT | READ_WRITE) 
    
    Statement 422749: 
    ------------------------------------------------------------------------------- 
    UPDATE TELEFONI_CISLA SET DATUM_PRIDANI = '2011-7-3' WHERE ID = '17274' 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
    PLAN (TELEFONI_CISLA INDEX (RDB$PRIMARY4)) 
         0 ms 
    
    2016-11-28T14:25:28.4780 (9473:0x7f1489cb1f08) EXECUTE_STATEMENT_START 
        phones.fdb (ATT_273856, VILAS:NONE, UTF8, TCPv4:10.1.1.195) 
        /usr/bin/flamerobin:10868 
         (TRA_78838, CONCURRENCY | WAIT | READ_WRITE) 
    
    Statement 422749: 
    ------------------------------------------------------------------------------- 
    UPDATE TELEFONI_CISLA SET DATUM_PRIDANI = '2011-7-3' WHERE ID = '17274' 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
    PLAN (TELEFONI_CISLA INDEX (RDB$PRIMARY4)) 
    

    イム:

いくつかの調査の後、私は最終的にfbtraceからこれを得ました。私たちがFBやサーバー設定で何も変更しなかったことを伝えたいだけです。

ありがとうございました。

+0

Firebird 2.5.2は最近のバージョンではありません。少なくとも2.5.6にアップグレードすることをお勧めします。しかし、あなたの問題は同時トランザクションによるロックと 'WAIT'トランザクションの使用によるものでもあります。待機していないトランザクションを使用するか、タイムアウトのある待機トランザクションを使用します。 –

+0

編集:今は2.5.5を実行してタイムアウトを指定しようとします:DeadlockTimeoutを10 –

答えて

0

すべては、何時間もコミットせずにオープントランザクションを取ってバックグラウンドで(cronから)実行されている多くのスクリプトの1つに起因していました。 もう一度OKに戻ります。