title: Firebird truncate table / delete all rows
body: <p>I am using Firebird 2.5.1 Embedded. I have done the usual to empty the table with nearly 200k rows: </p>
  
  <pre><code>delete from SZAFKI
  </code></pre>
  
  <p>Here's the output, see as it takes 16 seconds, which is, well, unacceptable.</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>Firebird has no TRUNCATE keyword. As the query uses  PLAN NATURAL, I tried to PLAN the query by hand, like so:</p>
  
  <pre><code>delete from szafki PLAN (SZAFKI INDEX (SZAFKI_PK))
  </code></pre>
  
  <p>but Firebird says "SZAFKI_PK cannot be used in the specified plan" (it is a primary key)
  Question is how do i empty table efficiently? Dropping and recreating is not possible.</p>