对数据库中1万条数据进行搜索。SELECT TOP 20 * FROM PeopleUser ORDER BY IsVIP DESC
执行需要8秒SELECT * FROM PeopleUser ORDER BY IsVIP DESC
执行需要1秒IsVIP字段是bit类型,值基本都是0。请问,查询速度为何这么慢?
执行需要8秒SELECT * FROM PeopleUser ORDER BY IsVIP DESC
执行需要1秒IsVIP字段是bit类型,值基本都是0。请问,查询速度为何这么慢?
你对其他字段试试,情况一样的.SELECT * FROM PeopleUser ORDER BY IsVIP DESC --对IsVIP排序,然后显示.SELECT TOP 20 * FROM PeopleUser ORDER BY IsVIP DESC --对IsVIP排序,按从小到大找前20个,然后显示.明显多个步骤嘛.
你看下执行过程,应该是先找到排序好的所有数据然后再显示前20个对IsVIP做下索引的话也许会好些
按理top的要比没有TOP的快
是不是索引有问题?
---try:
DBCC CHECKTABLE ('table')
一般情况应该是有top的快一点
你看看这个运行多少时间
select * from PeopleUser ORDER BY IsVIP DESC
执行需要8秒 SELECT * FROM PeopleUser ORDER BY IsVIP DESC
执行需要1秒
/**************************************/
第二条是在企业管理器中执行吧
不是set @@rowcount对不起
set rowcount只对返回数据量大了以起作用
速度确实快了,请问是什么原理?为什么TOP如此之慢?
还想请教,IsVIP字段中全都是0是否也影响排序速度?是不是因为重复值太多了?你测试的时候也使用bit字段吗?