我正在使用 Firebird 2.5.1 Embedded。我已经按照惯例清空了将近 200k 行的表:
delete from SZAFKI
这是输出,看它需要 16 秒,这是不可接受的。
Preparing query: delete from SZAFKI
Prepare time: 0.010s
PLAN (SZAFKI NATURAL)
Executing...
Done.
3973416 fetches, 1030917 marks, 116515 reads, 116434 writes.
0 inserts, 0 updates, 182658 deletes, 27 index, 182658 seq.
Delta memory: -19688 bytes.
SZAFKI: 182658 deletes.
182658 rows affected directly.
Total execution time: 16.729s
Script execution finished.
Firebird 没有 TRUNCATE 关键字。由于查询使用 PLAN NATURAL,我尝试手动计划查询,如下所示:
delete from szafki PLAN (SZAFKI INDEX (SZAFKI_PK))
但火鸟说“SZAFKI_PK 不能在指定的计划中使用”(它是一个主键)问题是我如何有效地清空表?无法删除和重新创建。