0

初め、

  • 1500 レコードのテーブルがあります
  • MySQL 5.0.54 を使用しています。
  • MySQL 5.0.97 用の dbForge を使用しています

テーブル:

CREATE TABLE IF NOT EXISTS s_users(
  user_id MEDIUMINT(9) NOT NULL,
  employee_id INT(11) NOT NULL,
  surname VARCHAR(50) NOT NULL,
  firstname VARCHAR(50) DEFAULT NULL,
  phone VARCHAR(25) DEFAULT NULL,
  email VARCHAR(100) DEFAULT NULL,
  organization_eng VARCHAR(100) DEFAULT NULL,
  organization_fra VARCHAR(100) DEFAULT NULL,
  unit_id SMALLINT(6) NOT NULL DEFAULT 0,
  unit_name_eng VARCHAR(150) DEFAULT NULL,
  unit_name_fra VARCHAR(150) DEFAULT NULL,
  status ENUM('active', 'inactive') NOT NULL DEFAULT 'inactive',
  udate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 131
CHARACTER SET utf8
COLLATE utf8_unicode_ci;

ステートメント:

select * from s_users;

再現するための手順は次のとおりです。

  1. クエリを実行します: select * from s_users;
  2. レコードセットの最後までスクロールしないでください。302+ のうちの 1 つを示します。
  3. 別のウィンドウで、クエリshow full processlist;を実行します。
  4. 状態では、ネットへの書き込みが表示されます
  5. 最初の SQL ステートメントのレコードセットの最後までスクロールするか、ステートメントが実行されているタブを閉じるまで、クエリは CPU を占有し続け (時間列は増加し続けます)、残りのステートメントをブロックします。

dbForge のどこかに設定がありませんか?

更新 #1

これは私の注意を引きました: https://stackoverflow.com/a/802686/503246

DBForge が特定の C API 呼び出しを使用しているため、このような結果になったのではないでしょうか?

4

1 に答える 1

1

ページナル モードに切り替える必要があるようです。デフォルトではフェッチ モードであり、レコードセットの最後に移動するまで接続を開いたままにします。

ページナル モードに変更するには:

  1. メイン メニューから [ツール -> オプション] を選択します。[オプション] ウィンドウが開きます。
  2. 「データ エディター -> 一般」ブランチに移動します。
  3. [デフォルトでページ モードを使用する] オプションを選択し、[初期ページ サイズ] を設定します。
于 2013-01-14T12:29:03.293 に答える