2020(效率管理)怎样提高数据库查询效率

上传人:精****库 文档编号:134630551 上传时间:2020-06-07 格式:DOC 页数:57 大小:349.65KB
返回 下载 相关 举报
2020(效率管理)怎样提高数据库查询效率_第1页
第1页 / 共57页
2020(效率管理)怎样提高数据库查询效率_第2页
第2页 / 共57页
2020(效率管理)怎样提高数据库查询效率_第3页
第3页 / 共57页
2020(效率管理)怎样提高数据库查询效率_第4页
第4页 / 共57页
2020(效率管理)怎样提高数据库查询效率_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《2020(效率管理)怎样提高数据库查询效率》由会员分享,可在线阅读,更多相关《2020(效率管理)怎样提高数据库查询效率(57页珍藏版)》请在金锄头文库上搜索。

1、(效率管理)怎样提高数据库查询效率http:/panyname,comid,position,ad.referenceid,worklocation, convert(varchar(10),ad.postDate,120) as postDate1,workyear,degreedescription FROM jobcn_query.dbo.COMPANYAD_query ad where referenceID in(JCNAD00329667,JCNAD132168,JCNAD00337748,JCNAD00338345, JCNAD00333138,JCNAD00303570,JCN

2、AD00303569, JCNAD00303568,JCNAD00306698,JCNAD00231935,JCNAD00231933, JCNAD00254567,JCNAD00254585,JCNAD00254608, JCNAD00254607,JCNAD00258524,JCNAD00332133,JCNAD00268618, JCNAD00279196,JCNAD00268613) order by postdate desc 35、在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 36、当用SELECT INTO时,它会锁住系统表(syso

3、bjects,sysindexes等等),阻塞其他的连接的存取。创建临时表时用显示申明语句,而不是 select INTO. drop table t_lxh begin tran select * into t_lxh from chineseresume where name = XYZ -commit 在另一个连接中SELECT * from sysobjects可以看到 SELECT INTO 会锁住系统表,Create table 也会锁系统表(不管是临时表还是系统表)。所以千万不要在事物内使用它!这样的话如果是经常要用的临时表请使用实表,或者临时表变量。 37、一般在GROUP B

4、Y 个HAVING字句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作。他们的执行顺序应该如下最优:select 的Where字句选择所有合适的行,Group By用来分组个统计行,Having字句用来剔除多余的分组。这样Group By 个Having的开销小,查询快.对于大的数据行进行分组和Having十分消耗资源。如果Group BY的目的不包括计算,只是分组,那么用Distinct更快 38、一次更新多条记录比分多次更新每次一条快,就是说批处理好 39、少用临时表,尽量用结果集和Table类性的变量来代替它,Table 类型的变量比临时表好 40、在SQL2000下,计算字段是

5、可以索引的,需要满足的条件如下: a、计算字段的表达是确定的 b、不能用在TEXT,Ntext,Image数据类型 c、必须配制如下选项 ANSI_NULLS = ON, ANSI_PADDINGS = ON, . 41、尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。存储过程是编译好、优化过、并且被组织到一个执行规划里、且存储在数据库中的SQL语句,是控制流语言的集合,速度当然快。反复执行的动态SQL,可以使用临时存储过程,该过程(临时表)被放在Tempdb中。以前由于SQL SERVER对复杂的数学计算不支持,所以不得不将这个工作放在其他的层上而增加网络的开销。SQL20

6、00支持UDFs,现在支持复杂的数学计算,函数的返回值不要太大,这样的开销很大。用户自定义函数象光标一样执行的消耗大量的资源,如果返回大的结果采用存储过程 42、不要在一句话里再三的使用相同的函数,浪费资源,将结果放在变量里再调用更快 43、SELECT COUNT(*)的效率教低,尽量变通他的写法,而EXISTS快.同时请注意区别: select count(Field of null) from Table 和 select count(Field of NOT null) from Table 的返回值是不同的! 44、当服务器的内存够多时,配制线程数量 = 最大连接数+5,这样能发挥最

7、大的效率;否则使用 配制线程数量 3000 在此语句中若salary是Float类型的,则优化器对其进行优化为Convert(float,3000),因为3000是个整数,我们应在编程时使用3000.0而不要等运行时让DBMS进行转化。同样字符和整型数据的转换。 48、查询的关联同写的顺序 select a.personMemberID, * from chineseresume a,personmember b where personMemberID = b.referenceid and a.personMemberID = JCNPRH39681 (A = B ,B = 号码) sel

8、ect a.personMemberID, * from chineseresume a,personmember b where a.personMemberID = b.referenceid and a.personMemberID = JCNPRH39681 and b.referenceid = JCNPRH39681 (A = B ,B = 号码, A = 号码) select a.personMemberID, * from chineseresume a,personmember b where b.referenceid = JCNPRH39681 and a.personM

9、emberID = JCNPRH39681 (B = 号码, A = 号码) 49、 (1)IF 没有输入负责人代码 THEN code1=0 code2=9999 ELSE code1=code2=负责人代码 END IF 执行SQL语句为: SELECT 负责人名 FROM P2000 WHERE 负责人代码=:code1 AND负责人代码 40 and fid 40 and fid = 60 end 的不同 begin create table #temp (FID int identity(1,1),ReferenceID varchar(20) insert into #temp (ReferenceID) select top 100000 ReferenceID from chin

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号