【译】SQL Server误区30日谈

  • 时间:
  • 浏览:1
  • 来源:uu快3和值_uu快3app_计划师

    那为那此循环分配机制对于TempDB指在一定量文件时产生性能那此的问题图片呢?有如下几种为啥让:

    不过这统统能一概而论。上周我遇到另兩个 那此的问题图片,另兩个 客户的TempDB负载大到还要3另兩个 CPU配上6另兩个 TempDB文件都可不上能减轻闩锁争用。这是否是 是因为着这是另兩个 最佳实践呢?当然是否是 。

    当缓冲区还要通过LazyWriter释放许多空间时(TempDB的Checkpoint不想做写回操作),多个TempDB文件有为啥让是因为着IO子系统的随机读写那此的问题图片,这会是因为着IO方面的性能那此的问题图片。

    TempDB的文件大小不一致,则有为啥让是因为着某个单独文件的自动增长,从而造成热点IO。

    为啥想要遇到闩锁争用,可不还要通过跟踪标记1118或是多建另兩个 TempDB文件来缓和这种 请况(原理可不还要在知识库KB 328551查到),我为啥让写了一篇关于为那此追踪标记1118依然被还要的长博文,链接:Misconceptions around TF 1118。

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

    循环分配算法是针对文件组而言,而对于TempDB非要指在另兩个 文件组。当这种 文件组含有16或3另兩个 文件时,为啥让循环分配算法的tcp连接有限,但对于一定量文件的TempDB依然还要做许多额外的同步工作,为啥让这次责工作会造成性能损失

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

    PS:敲定许多评论:TempDB的文件非要必要分布在多个存储器之间。为啥想要看过PAGELATCH类型的等待歌曲,即使你进行了分布统统会改善性能,而为啥让PAGEIOLATCH型的等待歌曲,或许你还要多个存储器,但这是否是 的是必然-有为啥想要还要讲整个TempDB迁移到原来存储系统,而是否是 仅仅为TempDB增加另兩个 文件。这还要你仔细分析后再做定夺。

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

    每个实例仅仅允许有另兩个 TempDb,但还要用到TempDB的地方却有统统,统统TempDB很容易成为性能瓶颈,我想要亲戚朋友数人都了解这种 点,而大多数人所不了解的应该是在那此请况下才还要额外的TempDB文件。

    在SQL SERVER 5000时代,TempDB的文件数还要和CPU核数保持1:1的关系,在SQL SERVER 5005和5008版本这条建议也适用,但为啥让SQL SERVER 5005+后的优化妙招 (详细请看我的博文),你不再还要严格按照1:1的比例关系设置CPU核数和TempDB文件数,统统文件数和CPU核数的比例保持在1:2或是1:4就行了。

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

    那你或许有那此的问题图片,为那此1:1的比例不好呢,那是为啥让太满的TempDB有为啥让引起原来性能那此的问题图片。为啥想要的每根查询中许多操作(比如排序)还要使用一定量的内存,但内存匮乏时,就还要将那此内容分配到TempDB中。当指在多个TempDB文件时,为啥让TempDB的循环分配机制,这有为啥让是因为着性能被失去,对于比较大的临时表也是非要。

    [题外话:在SQL PASS 2011我的好亲戚朋友Bob Ward,也是SQL CSS最牛的人。给出了另兩个 新的公式:为啥让CPU核数小于等于8,使其比例保持在1:1,而为啥让CPU核数大于8,使用8个文件,当你发现闩锁争用那此的问题图片时,每次额外加另兩个 文件]

    MVP Glenn Berry 有一篇博文里有查看sys.dm_os_wait_stats的DMV。这篇博文中可不还要查到你的服务器造成阻塞最多的是因为着是那此。为啥想要发现是PAGELATCH型等待歌曲,想要使用这段脚原来查看是为啥让FPS,GAM还是SGAM争用造成的那此的问题图片。

    当你看过PAGELATCH类型的阻塞时,说明遇到内存中分配位图的争用那此的问题图片了。而看过PAGEIOLATCH,说明遇到I/O子系统层面的争用那此的问题图片了。对于闩锁(Latch)想要将其看作和普通锁是一种东西,但更轻量,更短,为啥让只会被存储引擎内内外部使用。

分类: SQL Server DBA误区

错误

    统统这种 选则 想要进亦忧,退亦忧。到底十几只 TempDB文件才是共要 的呢?我统统能想要具体答案,为啥让基于我多年咨询经验以及出席各种大会的经验,我想要想要另兩个 指导方针---当为了外理闩锁争用时为TempDB创建多个文件要小心,仅仅在还要请况下才额外增加TempDB文件。也就非要你还要在可扩展性和性能之间取得另兩个 平衡。

    但想要困惑的是SQL CAT团队给出的建议统统1:1,但这种 建议是源自扩展方面的原理来说,而是否是 另兩个 通用法则。为啥让亲戚朋友所面对的大型客户数据量服务器和IO子系统是否是 大次责人非要为啥让遇到的。

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