为什么我设置的索引没有作用? 到底该怎样建索引才嫩个加快查询?--要跟据你的查询条件而定,如你所说在age字段上设了索引,但在查询条件中并没有牵涉到该字段,自然就没有用·! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先看一下你的语句是不是符合使用该索引的条件再就是使加了索引在运行的时候 sql server也会自动优化它认为没必要使用的就不会使用还是就是你用什么方法来检测你的运行速度个人觉得没有一个很精确测定执行时间的方法在优化的方法里使用适当的索引确时能提高查询速度而且有时大幅度的提高 下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条): (1)仅在主键上建立聚集索引,并且不划分时间段: Select gid,fariqi,neibuyonghu,title from tgongwen 用时:128470毫秒(即:128秒) (2)在主键上建立聚集索引,在fariq上建立非聚集索引: select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi> dateadd(day,-90,getdate()) 用时:53763毫秒(54秒) (3)将聚合索引建立在日期列(fariqi)上: select gid,fariqi,neibuyonghu,title from Tgongwen where fariqi> dateadd(day,-90,getdate()) 用时:2423毫秒(2秒) 虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示 得出以上速度的方法是:在各个select语句前加:declare @d datetime set @d=getdate() 并在select语句后加: select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 我是按age字段查询的啊age between 25 and 30 sql2005 导出数据库结构脚本时提示错误 急急急!! SQL SERVER智能查询问题 请教:如何取得UPDATA()后的最新的ID号? 怎么把一个自然顺序的表重新排序,改为按某个固定列排序? 求助啊,SQL Server在windows server hpc 2008集群中的并行操作 SQL Server 2005 错误日志求助! 求sql语句:如何将数据库同一个表内的两个字段的内容合成一个字段输出? mssql中的问题 SQL Server 2005 开发版 安装问题(70分) 如何把相同编号的行的不同内容合成一条? 请问decimal型的字段小位位数对字段有效值范围有影响吗?
再就是使加了索引在运行的时候
sql server也会自动优化
它认为没必要使用的就不会使用
还是就是你用什么方法来检测你的运行速度
个人觉得没有一个很精确测定执行时间的方法
在优化的方法里
使用适当的索引确时能提高查询速度
而且有时大幅度的提高
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
虽然每条语句提取出来的都是25万条数据,各种情况的差异却是巨大的,特别是将聚集索引建立在日期列时的差异。事实上,如果您的数据库真的有1000万容量的话,把主键建立在ID列上,就像以上的第1、2种情况,在网页上的表现就是超时,根本就无法显示
set @d=getdate()
并在select语句后加:
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())
age between 25 and 30