数据库是sqlserver 7.0
里面有表含10万条数据,某要检索字段没有索引,现在在vb中用“包含”搜索这个字段
如
select * from tableA where fieldA like "%fff%"
速度不够快,能有办法提高一下吗
里面有表含10万条数据,某要检索字段没有索引,现在在vb中用“包含”搜索这个字段
如
select * from tableA where fieldA like "%fff%"
速度不够快,能有办法提高一下吗
解决方案 »
- 急!为什么用VB写的,在有的电脑上老提示要安装OFFICE怎么解决呀?
- 打印初级问题请教
- 如何获得另一个应用程序窗口中的文本
- Access的问题
- Lib "user32" 怎么不能调用?
- 100分相送,谁有软件公司的开发实际项目的文档
- 如何在程序运行当中随时知道Form中的当前具有焦点的控件的名字,并且知道上一个具有焦点的控件的名字
- \\\\\用VB进行数据库编程,需要掌握哪些细节,谢谢大家推荐相关方面好书!///////
- 我想用vb编一个程序在sql2000中创建登陆用户怎么做?
- 实时错误91,对象变量或者with块变量未设置
- 请问这个数据包怎么发送(郁闷)?
- vb中文件输出如何指定路径?文件名用存储开始的时间表示?
it so quick
I was test it
select id from t where name like '%abc%',即使你在name列建了索引也没有用。如果条件许可,尽量采用类似于 like 'abc%',或者 like '%abc',这样SQL将只扫描以abc开头(结尾)的字段。如果条件不许可,而且数据量又大、又经常用到的话,LZ可以考虑全文检索。
(2)楼上兄弟的“ "_aa_"是错的,“_”只能检索到一个字符,可以在查询分析器里试试。
1。需要哪个写哪个
2。fieldA 建立索引
那么单纯的读出符合条件的数据的数量有办法快点吗
select count(*) from tableA where fieldA like "%fff%"
原来sql语句是这样的
(1)在fieldA列上建索引,但正如上所说,如果你的查询语句是 like "%fff%",因为前后都有%,因此该查询将导致全表扫描,索引在此查询中起不到作用。(2)如果一定要优化你给出的这条SQL语句,假如fieldA没有限制NOT NULL(也就是说有可能为空值时),倒可以这样做试试:
select count(fieldA) from tableA where fieldA like "%fff%",这样由于为NULL的值不做统计,因此速度相对会快些。