MSS性能调优剖析.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSS性能调优剖析

SQL和程序中的代码类似,实现同一个目的,可以使用许多不同的方式,但是某些方式却可以带来更好的性能 * * 1、例如仅存1-10的数,可以用TINYINT而不是INT。一方面这样可以使1个数据或索引Page中能存更多的行,减少读取的次数,降低I/O,另一方面也可以降低网络传输量。对于定长的字符列,使用CHAR而不是VARCHAR,VARCHAR的处理会带来额外的开销。 2、由于CHAR会分配固定的空间,而VARCHAR仅适用需要的空间,如果长度不一时使用CHAR会导致更多的空间占用,带来更多的I/O消耗。 3、NCHAR,NVARCHAR用于存储Unicode,所有字符都需要占用2个字节,因此会带来更高的I/O和网络负载。 4、TEXT类型的处理比VARCHAR需要更多的开销。 5、同样的数字使用数字类型存储比字符类型要占用更少的空间,而且数字类型在where条件中有哪些信誉好的足球投注网站和join时会带来较大的性能提升。 * * 1、触发器内的代码越复杂,处理一个insert,update,delete的时间就越长 2、例如想使用强制规则或默认值使用CHECK constraint要比快得多 3、可以在触发器触发之前将异常捕获,触发器的回滚消耗较多的资源 * * 有时为了少些一些代码,返回过多的数据,一方面会增加内存和网络的开销,另一方面在使用数据时也导致增加使用数据的成本,例如有哪些信誉好的足球投注网站一条数据或者进行排序。 * * * * * * SET NOCOUNT ON at the beginning of each stored procedure you write. This statement should be included in every stored procedure you write. If you want this feature turned off for your entire server, you can do this by running these statements at your server: SP_CONFIGURE user options, 512 RECONFIGURE * * * * * * * * 由于一个表只能创建一个聚集索引,所以一定要慎之又慎 1、SQL Server默认把Primary Key作为聚集索引,但是Primary Key并不是总适合做聚集索引 2、当查询中使用到between, , , group by, order by, Max, Min, count * * 非聚集索引的选择相对聚集索引来说要简单一些,因为你可以创建多个索引,选择多个列 2、选择性低于95%查询优化器不会选择使用此索引,例如标识true/false的列 3、减少索引的大小,减少对索引的读取 4、字符列处理的开销要大于数值类型 5、覆盖索引如果列过多,在数据较多的时候,也可能会导致较大的I/O 6、最左边的列不再where条件中不起作用 * * SQLServer:General Statistics 提供有关服务器范围内的常规活动的信息,如连接到 SQL Server 实例的用户数。 * * SQLServer:Databases 提供有关 SQL Server 数据库的信息,如可用的日志空间量或数据库中的活动事务数。这个对象可有多个实例。 * * fn_trace_gettable SELECT * INTO tracetable FROM ::fn_trace_gettable(C:\MyTrace.trc, default) 文件反转 * * * * * * Duration,CPU,Reads,Writes要综合分析,Duration高也可能是阻塞或者死锁导致 * * * * * * * * * * * * 丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其他事务的存在。最后的更新将覆盖由其他事务所做的更新,这将导致数据丢失。 例如,两个编辑人员制作了同一文档的电子副本。每个编辑人员独立地更改其副本,然后保存更改后的副本,这样就覆盖了原始文档。最后保存其更改副本的编辑人员覆盖另一个编辑人员所做的更改。如果在一个编辑人员完成并提交事务之前,另一个编辑人员不能访问同一文件,则可避免此问题。 未提交的依赖关系(脏读) 当第二个事务选择其他事务正在更新的行时,会发生未提交的依赖关系问题。第二个事务正在读取的数据还没有提交并且可能由更新此行的事务所更改。 例如,一个编辑人员正在更改电子文档。在更改过程中,另一个编辑人员复制了该文档(该副本包含到目前为止所做的全部更改)并将其分发给预期的用户。此后,第一个编辑人员认为目前所做的更改是错

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档