更快地加载数据集/查询

Load dataset / query faster

我有一个应用程序,只需单击一个按钮,数据库 table 中的所有记录就会加载到 cxGrid 中(通过 tadquery / 数据源)。记录数会随着用户插入而增加。

我只是想知道是否需要或应该做些什么来确保加载所有记录不会花费太长时间。

这是我在单击按钮时所做的事情:

with query1 do
begin
  Close;
  SQL.Clear;
  SQL.Text := 'SELECT * FROM DBA.Table1;
  Open;
end;

建议将不胜感激。

显然,这不是一个特别严格的测试,但是在我下面的测试应用程序中,将 GridMode 设置为 True 会导致打开数据集并在大约 125 毫秒内填充网格(对于 7k 22 -column rows) 与设置为 False.

的 900ms 相比
procedure TForm1.Button1Click(Sender: TObject);
var
  T1 : Integer;
begin
  if qNames.Active then
    qNames.Close;
  T1 := GetTickCount;
  cxGrid1DBTableView1.DataController.DataModeController.GridMode := CheckBox1.Checked;
  qNames.Open;
  Caption := IntToStr(qNames.RecordCount) + ':' + IntToStr(GetTickCount - T1) + ':' + IntToStr(qNames.FieldCount);
end;

除了我将 DataController 的 KeyFieldNames 设置为数据集的 PK 之外,cxGrid 中的所有内容都设置为默认值。