MSSQL网站制作之索引对查询前提按次的影响
使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。索引|前提原帖地点:
http://community.csdn.net/expert/FAQ/FAQ_Manage.asp?id=0&Topicid=3390663
情况:SqlServer2000+sp4
成绩:
selectdatediff(day,20040910,20040920)--这句能够实行
--而上面这句不克不及实行(偶然也能够实行)
--sub_para为varchar(8),毛病信息是:从字符串转换为datetime时产生语法毛病。
select*fromT_SUB
whereitem_local_code=03004
anddatediff(day,sub_para,getdate())=29
and(sub_del_flag1)
--并且不克不及实行的时分,这个语句不会前往任何纪录集
select*fromt_sub
whereitem_local_code=03004
andisDate(sub_para)=0
-------------------------------------------------------------------------
--缘故原由,表中创立的索引影响了前提的实行按次
--招致先实行了datediff(day,sub_para,getdate())
--上面的测试申明了这个成绩
--测试表及数据
createtabletb(
item_local_codechar(5),
sub_del_flagint,
sub_paravarchar(10),
constraintPK_tprimarykey(sub_para,item_local_code)
)
inserttbselect03004,1,2003-1-1
unionallselect03005,1,2003a1-1
go
--查询语句
select*from(
select*fromtb
whereitem_local_code=03004
andsub_del_flag0
andisdate(sub_para)=1
)Awheredatediff(day,sub_para,getdate())>29
go
--删除测试
droptabletb
/*--测试了局
item_local_codesub_del_flagsub_para
-------------------------------------
0300412003-1-1
服务器:动静241,级别16,形态1,行3
从字符串转换为datetime时产生语法毛病。
--*/
MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录. 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题! 我个人认为就是孜孜不懈的学习 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 大侠们有推荐的书籍和学习方法写下吧。
页:
[1]