关于查询速度问题 使用日期型的快一些,因为你要对字符型的进行截取,这样就要使用函数,那么MSSQL就不会使用索引了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上说对了一半,对于 函数(字符字段)=value SQLServer不使用索引,但是 字符字段=函数(表达式)能够使用索引,而且从7.0版本后字符检索速度改进很多,应该是字符串快 字符串是主键,内容如"T200202021030115472",从第2位到第10位是日期日期是带时间的datetime,不加索引呵呵,大家意见不太统一呀对于日期/时间数据,有人能够告诉我sqlserver的处理方式是什么样的么?如果使用datediff是不是会很慢呢?如果直接比较大小呢?我的想法是如果直接检索的话,日期的可能会快一点,用函数就不晓得了关于时间函数的效率不是很了解,希望有大虾指点。 SQL Server在使用DateTime数据类型与常量表达式运算时如模糊查询会自动转换为Varchar类型检索时字符串速度会快,可以使用索引。但如果进行计算,例如Datediff则DateTime字段会快一些。 方案一:你对时间字段加索引,用时间字段查。方案二:还用你的字符字段,用like取代截取,如:前3位 where xx like 'sad%' 2-4位: where xx like '_ssd%' 下面的是从蚂蚁那里看到的MATCHES和LIKE关键字支持通配符匹配,技术上叫正规表达式。但这种匹配特别耗费时间。例如:SELECT * FROM customer WHERE zipcode LIKE “98_ _ _” 即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。 很明显,肯定是采用时间字段的索引的时间快些。对于此类范围查询,将你的聚类索引加在时间列上对查询效率影响显著,同是在时间列上所建立的索引开销小于字符串,DATETIME列的所占用的空间大小为8字节,而你的字符串至少要22位,所以其产生的索引数据页只有字符串的1/3,节约了IO开销。到底那种方式好,你还可以用查询分析器显示其执行计划查看。 在时间字段上建立索引比较快。因为你的数据必须从字符字段上,从第2到第10截取,因此,你必须在等式左边加函数,因此,无论你在这个字段上建立多少索引,都是无用的,因为MSSQL会自动使用表扫描方式。 新手独自承担电子商务网站数据库设计,请过来人给点忠告。 SQLSERVER2000数据库恢复问题,我死的心都有了。。。求解! 提取省份城市 如何将两表连接在一起? SQL Server 2005创建作业执行SSIS包失败,请教高手 求一数据导入问题 求助 函数参数传值的问题 公司有偿高价请高手回复数据库! 请问怎么连接informix数据库,在bde中 我是一个数据库水手,感到存储过程好难懂,请各位谈谈对存储过程学习的经验和体会。 请问向表中添加新的属性列,该怎样做? 无法为更新行集定位:一些值可能己在最后读取后改变???????
但是 字符字段=函数(表达式)能够使用索引,
而且从7.0版本后字符检索速度改进很多,应该是字符串快
内容如"T200202021030115472",从第2位到第10位是日期
日期是带时间的datetime,不加索引
呵呵,大家意见不太统一呀对于日期/时间数据,有人能够告诉我sqlserver的处理方式是什么样的么?
如果使用datediff是不是会很慢呢?如果直接比较大小呢?我的想法是如果直接检索的话,日期的可能会快一点,用函数就不晓得了
关于时间函数的效率不是很了解,希望有大虾指点。
自动转换为Varchar类型
检索时字符串速度会快,可以使用索引。
但如果进行计算,例如Datediff则DateTime字段会快一些。
你对时间字段加索引,用时间字段查。方案二:
还用你的字符字段,用like取代截取,如:前3位 where xx like 'sad%' 2-4位: where xx like '_ssd%'
即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。