徵狀

假設您要在 Microsoft SQL Server 2016 或2017中建立或除去大量的臨時資料表。 某些應用程式工作負荷會使臨時資料表的快取失效。 例如,您正在建立臨時資料表,然後建立 ALTER TABLE,或建立索引 ,這會使 臨時資料表的快取無效。 在這種情況下,您可能會遇到下列問題:

  • 在系統目錄 sysobjvalues 的 tempdb 中的資料定義語言(DDL)爭用,以及大量等待 PAGELATCH_EX 的會話時,PAGELATCH_SH 並 PAGELATCH_UP 等待類型。

  • 此情況也會影響專案數量超過4000的工作負荷。 不過,這可能會根據工作負載而有所不同。 請參閱下列範例:

     

    SELECT [name], [type], [entries_count], [entries_in_use_count]

    FROM sys.dm_os_memory_cache_counters

    WHERE [type] = N'CACHESTORE_TEMPTABLES'

    列名

    輸入

    entries_count

    entries_in_use_count

    臨時資料表 & 資料表變數

    CACHESTORE_TEMPTABLES

    <計數>

    <計數>

解決方案

此問題已在 SQL Server 的下列累積更新中修正:

       SQL Server 2017 累積更新5

       SQL Server 2016 SP1 的累積更新8

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

SQL Server 2016 的最新累計更新

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×