全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:747
推到 Plurk!
推到 Facebook!

关于SQL查询语句的工作原理与效率问题

答題得分者是:oktony
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-01 21:51:07 IP:222.184.xxx.xxx 未訂閱
部份代码如下: ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select sum(单项累计) from tb_sf where 票据号=12'); ADOQuery1.SQL.Add(' and 项目类型 =:项目类型'); ADOQuery1.Parameters.ParamByName('项目类型').Value := Tot_Name[i] ; ADOQuery1.Open; 在提问之前我说明一下,数据表中记录每天以数千条在增加,这样不用多久数据表中记录就会很多很多。另外项目类型栏位Tot_Name[i] 可能有十个不同的项目类型左右,这样我就担心查询效率了。 如上所述,我想问一下各位前辈,上面的查询实际上的运行过程会如何呢?我个人理解他有两种可能:一、从大量记录中首先找出票据号=12的记录(这样的话记录不会很多,最多二十条样子)然后从这个二十条记录中再运算项目类型=项目类型这个查询(如果有十个项目类型就要运算十次?)这种可能是我希望要的,因为这样效率高,快。二、另一种可能,从大量记录中找出票据号等于12和项目类型=项目类型1的记录运算,再从大量记录中找出票据号等于12和项目类型=项目类型2的记录运算,直至到项目类型10,这样的话就要重复从大量记录中找10次,我想会很慢,比上面的那种过程慢多了,上面是首先找出票据=12,那样的符合记录条数不会超过二十条的。然后在这20条里面运算十次项目类型的查询就快多了,不知道实际上该查询是哪一种可能呢?如果效率慢如何改善呢?谢谢!
------
我的编程起步于ktop,我将永远支持ktop
oktony
中階會員


發表:67
回覆:132
積分:64
註冊:2004-12-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-01 22:05:17 IP:220.161.xxx.xxx 未訂閱
應該可以用存儲過程改善效率吧?
系統時間:2024-07-05 3:39:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!