免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5232 | 回复: 5
打印 上一主题 下一主题

数据库设计,索引,存储过程和查询规划对程序性能的影响 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-29 20:00 |只看该作者 |倒序浏览
为性能而改变常规设计
有时为了获得所需的性能,减少连接运算而设计非常规数据模型是必要的,但这是最后的解决办法。

保证记录的长度较小,当然要小于一个Online页的大小
跨越多页的长记录对性能无益
varchars是有上下边界的字符串
有效地减少存储空间
如一次数据更新增加了varchar值的长度,由于这条记录可能会跨越多页而对性能带来负面影响。


在绝对有必要的情况下才使用BLOBS

BLOBS比其它数据的处理的效率要低


索引

避免高度重复索引
高度重复索引会降低性能。如果觉得有必要在包含高度重复值的列上建立索引,最好与包含唯一值(或近似唯一的其它列)建立一个复合索引,服务器仍可以使用该索引来访问重复列值,而该索引得处理效率更高。

精心选择索引
索引的目的是为提供快速的数据访问,创建的索引要对SQL操作提供显著的性能改进,使用查询规划(Query Plan)和测试确定最佳的索引策略。

不要建立过多的索引
太多的索引与不充分、不正确的索引对性能都无益,在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理开支。

7.2版本之后可以反向处理索引,因此任何升序、降序索引的效果都是一样的。 对插入操作,使用FILLFACTOR控制索引页中的空间
优化器按照索引建立顺序选择索引。例如:colA列上建立索引的表和colA,colB,colC上建立的另一个索引效果都是一样的,即对colA过滤时将使用首先建立的索引,而不一定使用最佳索引。
只在读/扫描时使用索引
考虑下面的SQL语句

select cola,colb from tab1 where cola='ABC1243';

如果colb长度较小(如整形)而cola上有索引,那么可能在cola和colb上建立复合索引会更好些,可通过读取索引项不访问整行而加快查询速度,该方法只对频繁执行的查询有使用价值。



存储过程

可以减少客户机/服务器间的通信量
通过将复杂的应用逻辑交送给服务器,使用存储过程可以减少客户机/服务器间通信量(当然这将增加服务器的运行开支)
避免小的存储过程
存储过程对强制应用逻辑十分有用,但它会导致性能下降,要避免使用只有较少语句的存储过程。

避免嵌套的、递归的存储过程
存储过程调用其它的存储过程,这些存储过程又调用其它的存储过程,这对性能是有害的。

存储过程可以明显减少系统并行查询的能力
系统不能同时进行多个涉及存储过程的查询,但可以并行执行存储过程各自的SQL语句。

每行的检测中,where子句表达式中的存储过程都会被计算。
规划查询

查询规划优化器(由SET EXPLAIN ON产生)对于观察SQL语句的效率是十分有用的。可以看到统计、数据分布、索引、数据分片及SQL语句等对查询性能影响的效果。注意在输出查询规划对性能有极大的影响,因此在计时或运行系统中不要用SET EXPLAIN ON。

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
2 [报告]
发表于 2003-05-29 22:21 |只看该作者

数据库设计,索引,存储过程和查询规划对程序性能的影响

收藏!
不错!

论坛徽章:
0
3 [报告]
发表于 2003-06-19 18:00 |只看该作者

数据库设计,索引,存储过程和查询规划对程序性能的影响

up

论坛徽章:
0
4 [报告]
发表于 2003-10-08 09:06 |只看该作者

数据库设计,索引,存储过程和查询规划对程序性能的影响

都是我要看的文章

论坛徽章:
0
5 [报告]
发表于 2003-10-24 10:53 |只看该作者

数据库设计,索引,存储过程和查询规划对程序性能的影响

good!!!

论坛徽章:
0
6 [报告]
发表于 2006-08-05 04:42 |只看该作者

sigh

楼猪只是贴了这么一点点皮毛东西就找来这么多喝彩,肤浅啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP