海妖 发表于 2015-1-16 14:19:22

SQL基本教程及代码优化(四)

BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继存储历程、触发器、函数代码优化
3.1.在触发器的入手下手处到场行数查验
–注重@@rowcount语句的地位

3.2.没有需要的行信息反应
Setnocounton

3.3.尽早反省实行前提
–反省触发器触发前提
–反省进一步处置的条件前提

3.4.在举行相干表的更新(新增/修正/删除)时应举行材料存在性判别
–假如存在性判别过于庞大,也能够思索在目标表创建束缚或触发器保护

3.5.可以兼并的相干表更新(新增/修正/删除)只管兼并,削减更新次数
–利用一时表存储两头了局,在处置完一时表了局后再更新实表

3.6.将事件工夫把持到最短,事件应尽量串行实行削减逝世锁
–在最接近对实表收回DML语句出入手下手事件,在对实表收回DML语句后当即提交或回滚事件

3.7.变量重用
–过量的变量界说会稍微下降功能

3.8.一时表的利用
–会合创立一时表,显式删除一时表

3.9.游标的利用
3.10.多行处置
–经由过程分组手艺
–借助一时表
–借助游标

3.11.视图与函数的选择
–将可以改革成视图的函数改革成视图或增加响应处置多行的视图

3.12.利用表变量

3.13.将庞大的SQL改成利用表变量或一时表分步处置

3.14.只管罕用嵌套触发器

3.15.利用sp_executesql取代exec

3.16.假如存储历程仅前往单个值,利用output参数比前往了局集要快

3.17.一般情形下利用毗连比利用子查询快

3.18.只管制止重复会见统一张或几张表,特别是数据量较年夜的表,能够思索先依据前提提取数据光临时表中,然后再做毗连。

3.1触发器基础常识
3.1.1.SQLServer2005两种触发器选项
–DML触发器
–DDL触发器(New):审计及标准数据库操纵

3.1.2.Insteadof触发器和After触发器对照

3.1.3.inserted和deleted表

3.1.4.update()的利用

3.2SQLServer2005游标

4种服务器游标范例:
–静态游标:游标翻开时创建在tempdb中,翻开后数据库中任何变更不会表现在游标中(除非封闭后从头翻开)。静态游标是只读的。利用“Static”润色。比方:
·静态游标将不会显现其翻开今后再数据库中新拔出的行,即便它们切合游标SELECT查询前提;
·静态游标仍会显现在游标翻开今后删除的行;
·静态游标将仍旧显现被修正行的原始数据。

–静态游标:当转动游标时,反应了局会合所做的一切变动。利用“Dynamic”润色。

–只进游标:不撑持转动,只撑持从头至尾按次提取。对一切影响了局会合行的insert、update、delete语句,其效果在这些行中提取时是可见的。可是,外行提取后对行的所做的修正对游标是不成见的。利用“Forward_Only”润色。

–键集驱动游标:由一套被称为键集的独一标识符把持。对非键集列中的数据值所做的变动,在用户转动时是可见的。在游标外对数据库所做的拔出在游标内是不成见的。利用“Keyset”润色。这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。

简单生活 发表于 2015-1-18 12:53:11

对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。

只想知道 发表于 2015-1-25 23:36:10

微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。

再现理想 发表于 2015-2-4 14:19:04

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。

飘灵儿 发表于 2015-2-28 17:01:10

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

精灵巫婆 发表于 2015-3-10 04:36:02

一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。

活着的死人 发表于 2015-3-17 05:09:05

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

蒙在股里 发表于 2015-3-23 21:47:26

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
页: [1]
查看完整版本: SQL基本教程及代码优化(四)