本人是用DELPHI 的BDE的QUERY控件SQL語句進行查詢操作的,我們數據庫裡面有過千萬條記錄。現在查詢的時候非常慢,每次都要超過1分鍾的時候才有結果。
語句如下:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('select name  from ship02 where cust_id = '''+puser+'''');
Query.Open ;
jl:=Query.RecordCount;
if jl <>0 then
begin
for i :=1 to jl do
begin
pname:=quotedstr(trim(Query.Fields.Fields[0].AsString));
Query.Next;
end;
end;通常只有一條記錄是符合條件,但是每次查詢時速度太慢,請問QUERY控制SQL語句查詢有沒加快速度的方法,或有沒使用索引的方法?謝謝。

解决方案 »

  1.   


    有沒有在 cust_ID  上加索引?? 
    不過如果是主鍵的話,本身就有索引了。  從這一個SQL來講,如果已經做了索引,一記錄千萬條記錄,也說很快的了。
      

  2.   

    你这样做有什么意义?
    jl:=Query.RecordCount; 
    if jl <>0 then 
    begin 
    for i :=1 to jl do 
    begin 
    pname:=quotedstr(trim(Query.Fields.Fields[0].AsString)); 
    Query.Next; 
    end; pname最终值是Query最后一条记录,你干脆改成
    Query.Last;
    pname:= quotedstr(trim(Query.Fields.Fields[0].AsString)); 
    这样就能快一点吧