【译】SQL Server误区30日谈

  • 时间:
  • 浏览:1

    当缓冲区需要通过LazyWriter释放其他空间时(TempDB的Checkpoint不需要做写回操作),多个TempDB文件有完后 原因IO子系统的随机读写那些的间题,这会原因IO方面的性能那些的间题。

    当你看得人PAGELATCH类型的阻塞时,说明遇到内存中分配位图的争用那些的间题了。而看得人PAGEIOLATCH,说明遇到I/O子系统层面的争用那些的间题了。对于闩锁(Latch)让他将其看作和普通锁是五种东西,但更轻量,更短,有但是 只会被存储引擎组织组织结构使用。

本文转自CareySon博客园博客,原文链接http://www.cnblogs.com/CareySon/archive/2012/10/29/2744190.html,如需转载请自行联系原作者

    其他这个选者让他进亦忧,退亦忧。到底哪几个TempDB文件才是至少的呢?我其他让他让他具体答案,有但是 基于我多年咨询经验以及出席各种大会的经验,让他让他另一一三个小指导方针---当为了出理 闩锁争用时为TempDB创建多个文件要小心,仅仅在需要状态下才额外增加TempDB文件。也就你沒有需要在可扩展性和性能之间取得另一一三个小平衡。

    那你或许有那些的间题,为那些1:1的比例不好呢,那是完后 很多的TempDB有完后 引起原本性能那些的间题。完后 你的三根查询中其他操作(比如排序)需要使用一定量的内存,但内存缺乏时,就需要将那些内容分配到TempDB中。当处于多个TempDB文件时,完后 TempDB的循环分配机制,这有完后 原因性能被抛下,对于比较大的临时表也是越来越。

分类: SQL Server DBA误区

    [题外话:在SQL PASS 2011我的好大伙Bob Ward,也是SQL CSS最牛的人。给出了另一一三个小新的公式:完后 CPU核数小于等于8,使其比例保持在1:1,而完后 CPU核数大于8,使用8个文件,当你发现闩锁争用那些的间题时,每次额外加另一一三个小文件]

错误

    每个实例仅仅允许有另一一三个小TempDb,但需要用到TempDB的地方却有其他,其他TempDB很容易成为性能瓶颈,让他大伙数人都了解这个点,而大多数人所不了解的应该是在那些状态下才需要额外的TempDB文件。

    但让他困惑的是SQL CAT团队给出的建议其他我1:1,但这个建议是源自扩展方面的原理来说,而都是另一一三个小通用法则。完后 大伙所面对的大型客户数据量服务器和IO子系统都是大偏离 人越来越完后 遇到的。

    哎,完后 上述误区是微软“官方”的建议,有但是 还有一定量博文坚持这个观点,这个误区完后 是老生常谈。

    那为那些循环分配机制对于TempDB处于一定量文件时产生性能那些的间题呢?有如下几种完后 :

    本系列文章是我在sqlskill.com的PAUL的博客看得人的,其他误区都比较具有典型性和代表性,原文来自T-SQL Tuesday #11: Misconceptions about.... EVERYTHING!!,经过大伙团队的翻译和分发发布在AgileSharp上。希望对大伙有所帮助。

    MVP Glenn Berry 有一篇博文里有查看sys.dm_os_wait_stats的DMV。这篇博文中可能够够 查到你的服务器造成阻塞最多的原因是那些。完后 你发现是PAGELATCH型等待英文,让他使用这段脚原本查看是完后 FPS,GAM还是SGAM争用造成的那些的间题。

    循环分配算法是针对文件组而言,而对于TempDB只能处于另一一三个小文件组。当这个文件组包含 16或3另一一三个小文件时,完后 循环分配算法的进程有限,但对于一定量文件的TempDB依然需要做其他额外的同步工作,有但是 这偏离 工作会造成性能损失

    不过这其他让他一概而论。上周我遇到另一一三个小那些的间题,另一一三个小客户的TempDB负载大到需要3另一一三个小CPU配上6另一一三个小TempDB文件能够减轻闩锁争用。这否是原因这是另一一三个小最佳实践呢?当然都是。

    在SQL SERVER 60 0时代,TempDB的文件数需要和CPU核数保持1:1的关系,在SQL SERVER 60 5和60 8版本这条建议也适用,但完后 SQL SERVER 60 5+后的优化妙招(完整篇 请看我的博文),你不再需要严格按照1:1的比例关系设置CPU核数和TempDB文件数,其他我文件数和CPU核数的比例保持在1:2或是1:4就行了。

    希望上端的指导方针对你有帮助。

    完后 你遇到闩锁争用,可能够够 通过跟踪标记1118或是多建另一一三个小TempDB文件来缓和这个状态(原理可能够够 在知识库KB 328551查到),我完后 写了一篇关于为那些追踪标记1118依然被需要的长博文,链接:Misconceptions around TF 1118。

误区 #12:TempDB的文件数和需要和CPU数目保持一致

    TempDB的文件大小不一致,则有完后 原因某个单独文件的自动增长,从而造成热点IO。

    PS:组阁 其他评论:TempDB的文件越来越必要分布在多个存储器之间。完后 你看得人PAGELATCH类型的等待英文,即使你进行了分布其他我会改善性能,而完后 PAGEIOLATCH型的等待英文,或许你需要多个存储器,但这其他我是必然-有完后 你需要讲整个TempDB迁移到原本存储系统,而都是仅仅为TempDB增加另一一三个小文件。这需要你仔细分析后再做定夺。