SQL代码优化-火龙果软件.pptVIP

  • 0
  • 0
  • 约7.35千字
  • 约 33页
  • 2019-06-18 发布于天津
  • 举报
调优工具的使用执行计划数据库引擎优化性能监视预告服务器配置优化性能优化用户操作方法优化业务流程优化感谢技巧来源于不断的探索和总结优化永无止境火龙果整理火龙果整理代码优化培训主要内容表结构优化语句优化存储过程触发器函数代码优化视图优化调优工具的使用表结构优化文件组的选择索引的使用约束触发器栏位数据类型的选择冗余第三范式表的水平垂直分割阶段性表的使用文件组的选择多磁盘带来的性能提升磁盘阵列文件组提升性能的方法使用多个文件组一个文件组使用多个文件文件组的选择续磁盘阵列无差错控制的带区组数据分散在不同硬

5.调优工具的使用 5.1.SQL Profile 5.2.执行计划 5.3.数据库引擎优化 5.4.LECCO SQL Expert 5.5.Windows 性能监视 预告 1.SQL Server服务器配置优化 2.Windows性能优化 3.用户操作方法优化 4.业务流程优化 感谢 技巧来源于不断的探索和总结 优化永无止境 ? ? ? ? ? ? ? ? 火龙果·整理 uml.org.cn ? ? ? ? ? ? ? ? 火龙果·整理 uml.org.cn SQL代码优化 培训主要内容 1.表结构优化 2.Select语句优化 3.存储过程、触发器、函数代码优化 4.视图优化 5.调优工具的使用 1.表结构优化 1.1.文件组的选择 1.2.索引的使用 1.3.约束VS触发器 1.4.栏位数据类型的选择 1.5.冗余VS第三范式 1.6.表的水平、垂直分割 1.7.阶段性表的使用 1.1文件组的选择 1.1.1.多磁盘带来的性能提升(磁盘阵列) 1.1.2.文件组提升性能的方法: (1)使用多个文件组 (2)一个文件组使用多个文件 1.1文件组的选择(续) RAID(磁盘阵列) RAID 0:无差错控制的带区组 数据分散在不同硬盘上,不需要计算校验码 ,没有数据差错控制,总容量=SUM(各磁盘容量),读取同样文件的时间被缩短为1/2 。 RAID 1:镜像结构 RAID控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。安全性是非常高 ,实现成本最高,总容量=SUM(各磁盘容量)/2,数据块传送速率与单独的盘的读取速率相同。 RAID 0+1: RAID 0与RAID 1结合 RAID5:分布式奇偶校验的独立磁盘结构 读出效率很高,写入效率一般.奇偶校验码在不同的磁盘上 。 1.2索引的使用 1.2.1.不宜建立索引的情形 (1)经常插入、修改、删除数据的表 (2)数据量比较少的表 1.2.2.适合建立索引的情形 (1)经常出现在Where、Group by、Order by子句中的列 1.2.3.聚集索引的设计原则 (1)列的值是唯一的或很少重复 (2)经常使用between…and按顺序查询的列 (3)定义为identity的唯一列 (4)经常用于排序的列 1.2索引的使用(续1) 1.2.4.无法使用索引的SELECT语句 (1)对索引列使用了函数或计算 (2)对索引列使用了Like ‘%X’或Like ‘%X%’ (3)在组合索引的第1列不是使用最多的列 (4)在Where子句中使用了In(子查询) (5)数据类型转换将导致不能利用索引 (6)负向比较将导致不能利用索引 索引的使用(续2) 1.2.5.定期整理索引碎片 Dbcc indexdefrag DBCC INDEXDEFRAG (AdventureWorks, Production.Product, PK_Product_ProductID) DBCC DBREINDEX DBCC DBREINDEX (HumanResources.Employee, PK_Employee_EmployeeID,80); DBCC SHOWCONTIG DBCC SHOWCONTIG (HumanResources.Employee) sys.dm_db_index_physical_stats UPDATE STATISTICS UPDATE STATISTICS ON Production.Product WITH FULLSCAN, NORECOMPUTE 1.3约束VS触发器 Check要优先于Trigger Check只能实现相对简单的业务规则 Trigger可以实现几乎所有的业务规则(如数据维护条件的判断、流程自动化等) 尽量使栏位不可为空(如所有数字栏位设置不可为空,默认值为0) 1.3.1使用约束 在创建表时创建 CHECK 约束 create table t_a(a int not null,constraint ck_t_a check(a 0)) 在现有的表中创建 CHECK 约束 alter table t_a add constraint ck_t_a check(a 1) 删除 CHECK 约束 alter table t_a drop constraint ck_t_a 禁用 CHECK 约束 alter table t_a nocheck constraint ck_t_a 启用 CHECK 约束 alter table t_a check constraint ck_t_a 修改 CHECK 约束 先drop后add 1.4栏位数据类型的选择 1.精确数字与近似数字 精确数字:bigint、in

文档评论(0)

1亿VIP精品文档

相关文档