Delphi ADO的高手進來吧 (50分)

  • 主题发起人 主题发起人 simonlai
  • 开始时间 开始时间
S

simonlai

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用AdoTable及AdoQuery﹐但我打開一個記錄達二萬條的表時竟用了我(十三秒)﹐
這個蝸牛速度誰也受不了﹐那位高手有那些比較明確的解決方法﹖特急﹗
ADO是通過SQL SERVER 跟后台的SQL2k連接﹐AdoTable及AdoQuery的CacheSize值是
按李維說的最佳值1000設定﹗
 
首先你的服务器性能一定要好!如果很好的话应该不会很慢!
再则你说LIWEI的建议不一定好了我觉得实际问题还是要实际解决了,你认为呢???
 
服務器絕對的好﹐DELL 原裝服務器 35G 4個硬盤陣列﹐1G內存﹐雙CPU800﹗可以了吧﹗
是的﹐但一般情況下﹐設1000卻實比默認的1要好多﹐這我有試驗過﹗
 
還有我們本域內是用D-link100/10的原裝網卡﹐跨域段全部用光纖進行連接﹐
網路的速度肯定也不會慢﹐能不能多提些詳細的好的建議吧﹗
 
我觉得可能是你程序或网络的问题,与配置无关.
1.请问你在客户端sqlserver的manager中打开该表要多久?最好在内网和广域网上都试一试。
2。是直接打开单张表还是用复杂的sql语句?表上有没有检索?
3。服务器端sqlserver所占内存设了多少?
4。是什么版的sql2000?
 
先謝謝jereen!
sql2000是企業版
用sqlserver的manager中打開該表用的時間跟ado一樣﹐用內網跟廣域網上的時間也差不多
其實為什么Table,Query打開會這么快是因為它們是按頁打開的﹐而Ado則是完全打開﹐所以
時間就當然要長了﹐我現在想知道的是﹐如何設置ADO也是按頁打開﹗
 
分数太少
 
不对了!
如果你在sqlserver中打开也这么慢,那一定是服务器的问题了,与ADO是否按页打开无关!
我试过在sqlserver7客户端完全打开6万条记录用了不到2分钟
(100M局网,服务器256M内存1CPU(就是我的PC机!),客户端256M内存)
将服务器端的内存、线程之类的参数设大一点!看看双cpu有没有都用上!
我看你的服务器装的有问题!
 
各位老兄﹐對不起我寫錯了﹗不是十三分鐘而是十三秒﹐這個速度是無法接受的﹗
請高手幫忙如何解決﹐能不能像Table 或 Query 一樣按頁存取﹖
 
你要想知道是什么地方出了问题?很简单,用VB或VC连接试验一下。
估计是Delphi本身的问题。
 
关注ado按页打开的方法,simonlai看一下你的
adoconnection的CursorLocation的属性
设成clUseServer试试!
 
你使用bde连接的速度大概是多少?
 
设成clUseServer 也是一樣的慢可憐﹗
Table,Query都是通過dataBase 跟ODBC聯結﹗就是快﹖
還有沒有好的方法呀﹐我等了兩天了﹗
 
将服务器sqlserver所占内存设为800M看看是否快些。
 
關于這個問題的解決方法﹐請各位到深度論壇看看李維老師的解答﹐
我想對我們都會有好處的﹗ http://forum.vclxx.org/

雖然本問題在這里還是沒有得到完整的解答﹐我暫時不把問題停止討論﹐但我會把
分數分給各位同仁志士的﹗
本問題提問人SimonLai
 
各位为什么不试使
TAdoDataset.MaxRecords=100(或者其他)

我的测试,数据表是Ms Proxy 2.0的日志表,大概26万条
用SQL 2000直接打开用7s,adodataset 直接打开用53s
用TAdoDataset.MaxRecords=100,小于1s ————:P
如果只是分页显示,这可是不错的办法
 
1.可以用ODBC试试,不过首次连接你可能更接受不了。
2.用LDAP协议
 
你不要一下子全打开了嘛,这是大忌耶。
 
后退
顶部