ClientDataSet的FetchOnDemand为TRUE和PacketRecords=100性能问题(100)

  • 主题发起人 主题发起人 lsz100
  • 开始时间 开始时间
L

lsz100

Unregistered / Unconfirmed
GUEST, unregistred user!
当ClientDataSet的FetchOnDemand为TRUE和PacketRecords=100时,这时如果CLIENTDATASET查询了10W条记录,这时这10W记录是不是缓存在应用服务端
 
请大家讲讲
 
10W记录已经到了本地内存中。TDataSetProvider只保存有客户端最后一次读取记录的位置。如果再次读取100条,TDataSetProvider就会从该位置的下一条记录开始,从数据库表中读取100条到客户端。
 
应该是在服务器上,你可以搞两台电脑来试一下.
 
应该是在服务器上,哪个服务器,数据库服务器还是应用服务器
 
应用服务器上
 
我觉得应该要看情况:dbexpress,BDE我认为在数据库服务器上。ADO要看cusortype的设置,客户端游标在应用服务器上,服务端游标在数据库服务器上。Borland产品最大的特点就是非离线的,和微软Ado.net产品不一样的。不断往下拉Grid会不断从数据库fetch数据的。其次,PacketRecords=100只代表Client从APPSServer抛回的数据时100一次,并不代表APPServer从数据库中Fetch的数量,这个参数指挥不了AppServer到数据库提取的数量。Appserver和数据库之间交换数据包的大小我也不知道由什么决定的,但可以肯定不是一竿子买卖全拉数据的。否则再好的中间服务器也早崩了。
 
后退
顶部