怎样获得SQLServer的优化性能?.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样获得SQLServer的优化性能?

怎样获得SQL Server的优化性能? 摘自互联网 SQL Server的性能, 经验证明,SQL Server的性能提高主要取决于逻辑数据库设计,索引设计和查询设计。 反之,最大的性能问题也往往源于这几个方面的设计缺陷。 而其它系统级的性能问题, 例如内存、高速缓存、 硬件等, SQL Server对现有硬件资源采用自动方式管理,从而减少系统级的手工调整。 SQL语句的性能 摘自互联网 PREPARE处理 可能需要使用“WITH REOPTIMIZATION打开游标 使用游标(cursor)或使用execute into prepare可节省客户机/服务器间的网络交换量 对于大量插入操作使用insert游标 明确FET_BUF_SIZE带来的益处(对ISQL,4GL不适用) 使用恰当地、最低限制隔离级别 ? 使用主键,避免使用ROWID ? 避免不必要的类型转换,要了解”隐藏的类型转换, select col1,col2 from tab1 where col110, 如col1是字符型(char),俞每行的比较中,整数10就会转换为字符型,这条语句应写为: select col1,col2 from tab1 where col110 decimal类型数据的各种运算和转换代价是高的 适当使用UPDATE WHERE CURRENT OF ? 避免频繁的库间切换--使用分布式查询或通过CONNECT语句进行多处联结。让服务器来完成这样的工作(但要使工作量最小) Fetch不需要的行、列和只更新被改变的列,这样可以减少软件冲突(可以避免锁住索引项)。 在服务器中排序、分组记录(仅在必要时 数据库设计,索引,存储过程和查询规划对程序性能的影响 摘自互联网 为性能而改变常规设计 有时为了获得所需的性能,减少连接运算而设计非常规数据模型是必要的,但这是最后的解决办法。 保证记录的长度较小,当然要小于一个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。 摘自互联网 1.数据加载的方法 High Performance Loader) 十分灵活的加载工具,适用于7.2以后各版,性能高。 ESQL加载程序 Bulk加载器(BLOADER) Online中,非正式支持,性能良好。 DBLOAD ASCII文件,对于少量

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档