我在用ADOQuery查询数据库表时,老是出现查询方面的错误
数据库是SQL Server 2000,表中的数据比较多,属于千万条数据的级别,现在暂时没有那么多,有将近1千万条,前期数据还没有全部录入,全部录入后大概有两三千万条,而且以后还会增多,每个月大约1百万条数据。
所以,最大最大的问题是:如何用ADOQuery查询时提高其查询的速度问题???
可以从SQL 语句的优化方面讲,也可以从ADOQuery本身的方面讲。
谢谢各位~~~~
数据库是SQL Server 2000,表中的数据比较多,属于千万条数据的级别,现在暂时没有那么多,有将近1千万条,前期数据还没有全部录入,全部录入后大概有两三千万条,而且以后还会增多,每个月大约1百万条数据。
所以,最大最大的问题是:如何用ADOQuery查询时提高其查询的速度问题???
可以从SQL 语句的优化方面讲,也可以从ADOQuery本身的方面讲。
谢谢各位~~~~
解决方案 »
- 新增一窗体,程序启动后,同时弹出登录窗口跟新增的窗体,怎么办呀?
- word问题。大家看看好吗?
- 怎么当窗体最小化时在系统托盘上显示呢?
- 如何調用動態庫中的函數
- 怎样将一个frame加入到一个panel中,解决即给分!
- 怎么搞得,我的foxmail4.2一安装就报错,‘...\temp\setup.msg is missing’,高分求救了呀!
- 我在做数据库时遇到一个问题
- 高手进来讨论广外女生木马的原理,谢谢,还有我怎么不涨分
- ?****有请****?
- Delphi将一个excle表中的某列数据存到一个容器内?类似于map的容器,我每个单位要存进去两个值
- 请问如何在listbox中读取sql数据库中的数据
- 寻找一款播放mp3音频的控件
1.设置其CursorLocation属性为clUseServer,当打开数据查询时,不会把符合条件的数据全部读到存储器中,只有当需要的情况下才会再次读取一批数据,比如当显示的时候,一屏只显示了200条,而查询结果有1万条,那么打开数据集后可能会只从服务器取200条数据,用户使用滚动条向下滚动的时候会将需要显示的那部分读到内存中,这样就节省了网络传输、存储处理的时间。
当然这种办法只有在查询结果数据量较大的情况下才会比较有效,如果查询结果只有百十来条数据甚至更少,那就显不出效果来的。
2.优化查询语句和操作流程
如果你的操作对象只是一条或某条记录,那么尽量在设置ADOQuery的SQL时候尽量使用Where语句来限制查询结果,尽量不使用类似于“select * from TableName”的语句,将查询结果取回来再使用类似Filter的条件过滤。
如果你的操作对象太频繁,那么尽量将这些操作对象放在存储器中,以减少频繁读取和保存的次数和时间。
对于数据库,可以根据情况建立索引,尽量使用聚簇索引,这种是最快的。
对于sqlserver的查询语句的优化可以利用sqlserver的工具看看执行计划,建立适合的必要的索引,因为索引如果建立的不好会影响到insert,update等操作。
分区视图或分页显示也比较好。