線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1569
推到 Plurk!
推到 Facebook!

換了MS_SQL資料庫,程序執行速度反而慢了

答題得分者是:Jasonwong
leonli80
一般會員


發表:29
回覆:27
積分:11
註冊:2006-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-20 10:02:42 IP:58.37.xxx.xxx 訂閱
我的程式原來是使用Pardaoxr資料庫,執行起來速度很快的。現在換成MS_SQL資料庫,用ADO的,原始碼都一樣。執行某些操作的速度反而慢了,很明顯的慢,請問怎麽解決?
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-20 10:30:26 IP:202.154.xxx.xxx 未訂閱
請問你是用 ADOTable 還是用 ADOQuery !?

如果是 ADOTable 請改用 ADOQuery

如果是 ADOQuery 請檢查 SQL 是否都為 Select * From [TableName]
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
leonli80
一般會員


發表:29
回覆:27
積分:11
註冊:2006-08-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-20 14:59:21 IP:124.78.xxx.xxx 訂閱
我原來在BDE中是使用Table的,因此在ADO中同樣使用ADOTable,您可以解釋一下爲什麽使用ADOTable要換成ADOQuery麽?
我是要使用表連接的,所以感覺使用ADOTable方便一些
就是 ADOTable1 <--MasterSource ADOTable2 <- MasterSource ADOTable3


Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-20 15:43:28 IP:64.62.xxx.xxx 未訂閱
因為 ADOTable 一開啟會把資料全部下載到前端來, 你資料量越大速度會越慢

解決此一問題的方法就是改用 ADOQuery 去下 SQL

如此一來才能減少資料量的傳輸

速度才會加快
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
leonli80
一般會員


發表:29
回覆:27
積分:11
註冊:2006-08-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-20 19:14:51 IP:124.78.xxx.xxx 訂閱
那請問,我的主從表怎麽解決呢?
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-21 09:03:56 IP:211.75.xxx.xxx 訂閱
自行下SQL Command

<textarea class="delphi" rows="10" cols="60" name="code">adoquery1.sql.Add('Select Table1.Field1 , Table1.Field2 , Table2.Field1 , Table2.Field3 , Table2.Field4 , Table3.Field1 , Table3.Field3 , Table1.Field5'); adoquery1.sql.Add('From Table1 Join Table2 On Table1.Field1 = Table2.Field1'); adoquery1.sql.Add('Join Table3 On Table2.Field1 = Table3.Field1 And Table2.Field3 = Table3.Field3'); adoquery1.open; </textarea>
另外建立必要的index 也有助於減短搜尋時間
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-07-21 09:04:39, 註解 無‧
HireMan
一般會員


發表:0
回覆:12
積分:2
註冊:2004-12-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-07-24 23:53:47 IP:125.77.xxx.xxx 訂閱

===================引 用 leonli80 文 章===================
那請問,我的主從表怎麽解決呢?
===
主从表也可以用adoDataSet,属性里头有masterfields 与DataSource
其实对MSADO接口里说AdoDataSet,AdoTable,Adoquery都是源于_Recordset,Borland当初是考虑与之前的BDE组件操作类似比较容易上手而增加的两个组件,我个人建议使用AdoDataset或adoint.recordset,为什么,大家可以看adodb单元代码,问题就接晓!
====
分享快乐:www.delphichm.com
編輯記錄
HireMan 重新編輯於 2007-07-24 23:55:21, 註解 無‧
系統時間:2024-05-19 1:33:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!