zoukankan      html  css  js  c++  java
  • 优化tempdb提高SQL Server的性能

    【赛迪网讯】如果SQL Server对tempdb访问不频繁,tempdb对数据库不会产生影响;相反如果访问很频繁,loading就会加重,tempdb的性能就会对整个DB产生重要的影响.优化tempdb的性能变的很重要的,尤其对于大型数据库。

    注:在优化tempdb之前,请先考虑tempdb对SQL Server性能产生多大的影响,评估遇到的问题以及可行性。

    1、最小化的使用tempdb

    SQL Server中很多的活动都活发生在tempdb中,所以在某种情况可以减少多对tempdb的过度使用,以提高SQL Server的整体性能。

    如下有几处用到tempdb的地方:

    (1)用户建立的临时表.如果能够避免不用,就尽量避免. 如果使用临时表储存大量的数据且频繁访问,考虑添加index以增加查询效率。

    (2)Schedule jobs.如DBCC CHECKDB会占用系统较多的资源,较多的使用tempdb.最好在SQL Server loading比较轻的时候做。

    (3)Cursors.游标会严重影响性能应当尽量避免使用。

    (4)CTE(Common Table Expression).也会在tempdb中执行。

    (5)SORT_INT_TEMPDB.建立index时会有此选项。

    (6)Index online rebuild。

    (7)临时工作表及中间结果集.如JOIN时产生的。

    (8)排序的结果。

    (9)AFTER and INSTEAD OF triggers。

    不可能避免使用tempdb,如果有tempdb的瓶颈或issue,就该返回来考虑这些问题了。

    2、重新分配tempdb的空间大小

    在SQL Server重启时会自动建立8MB大小的tempdb,自动增长默认为10%. 对于小型的数据库来说,8MB大小已经足够了.但是对于较大型的数据库来说,8MB远远不能满足SQL Server频繁活动的需要,因此会按照10%的比例增加,比如说需要1GB,则会需要较长的时间,此段时间会严重影响SQL Server的性能. 建议在SQL Server启动时设置tempdb的初始化的大小(如下图片设置为MDF:300MB,LDF:50MB),也可以通过ALTER DATABASE来实现. 这样在SQL Server在重启时tempdb就会有足够多的空间可利用,从而提高效率。

    难点在于找到合理的初始化大小,在SQL Server活动频繁且tempdb不在增长时会是一个合适的值,可以设置此时的值为Initial Size;当然还会有更多的考量,此为一例。

    3、不要收缩tempdb(如没有必要)

    有时候我们会注意到tempdb占用很大的空间,但是可用的空间会比较低时,会想到shrink数据库来释放磁盘空间, 此时要小心了,可能会影响到性能。

    4 、分派tempdb的文件和其他数据文件到不用的IO上

    tempdb对IO的要求比较高,最好分配到高IO的磁盘上且与其他的数据文件分到不用的磁盘上,以提高读写效率.

    tempdb也分成多个文件,一般会根据CPU来分,几个CPU就分几个tempdb的数据文件. 多个tempdb文件可以提高读写效率并且减少IO活动的冲突。

    tempdb是SQL Server重要的一部分,以上只是对tempdb的一些了解总结,还需要进一步学习。

    http://news.ccidnet.com/art/32849/20100517/2061689_1.html

  • 相关阅读:
    使用validwhen设计复杂的Struts表单验证
    http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories
    我的JDK是1.5得啊,我的maven2也是2.0.9的最新版本的,这个是底层接口的泛型,又不能删除,请教用过的高手怎样解决啊?
    Oracle的rownum原理和使用
    Maven 搭建环境(http://dearshor.javaeye.com/blog/272274)
    使用nexus替代artifactory作为maven私服
    [转]关于struts中validate的几种情况
    用Artifactory管理内部Maven仓库
    容器
    天生一对"Maven2+Jetty" Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试
  • 原文地址:https://www.cnblogs.com/Snowfun/p/2218896.html
Copyright © 2011-2022 走看看