关于提高查询速度的问题(50分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
sql server 7.0的问题:
假如有一表有十几万条数据,如果查询某一条记录:
select field1 from table1 where field1='张三',可以不用2秒钟就可以查询到。
但是如果这样查:
select field1 from table1 where field1 like '%张%',有时候需要几分钟,有时候
需要1分钟,有没有办法提高速度?
采用二层结构(C/S结构),用BDE连接数据库。
 
给 field1 建索引呢?
 
给field1建立索引,可提速
对BDE的进行优化设置。
 
使用功能更强的服务器:)
 
没有太好的方法,建索引会太大。不如
 
不知道你的查询是放在什么地方?
你用SP做查询吗?
可以用ADO试试!
 
是这样的,你想一下,可能用%张%服务器会把所有的FIELD的数据的每个字符都会检查一次,
而用select field1 from table1 where field1='张三'只检查整条数据
看是不是符合条件.这肯定会增加服务器的负担,然后服务器把数据返回用户,
我以前做过这样的系统.要快试一下PB.........
 
没有太好的办法,只能从多方面进行优化:
1。BDE优化 : 包括要返回记录用Open(),不返回用ExecSQL();
打开之前用Prepare();
2。SQL数据库优化 : 用E_R方法尽量将表的结构做的合理,无冗余字段
SQL Server 本身有优化数据库的功能
3。建索引 : 索引乃数据库速度之门
4。SQL语句优化 : 比如少用in这样的关键字, 用存储过程
5. 数据库驱动程序以及访问方法优化 : 比如操作Access数据库最好直接用Dao
BDE, ODBC, ADO, DAO等等各有优缺点,一般微软的数据库
应该用ADO, DAO
暂时想这么多.
 
index and see database type
 
折中办法,自己定义一张索引表。如果你非常追求查询速度的话。
但新增,修改,删除记录要随时更新你的索引表。另外的负担。8-(
 
我发现问题了,是因为网络的问题。
 
后退
顶部