Sql-Server
序列對象阻塞
我們一直在遇到一個我們擁有的被稱為很多的序列對象的問題。它用於在將記錄插入表之前分配一個值。
今天我看到 700 多個會話(都試圖從序列對像中獲取下一個值)被一個試圖從具有 PAGELATCH_EX 等待類型的序列對像中獲取下一個值的會話阻塞。其他 700 多個會話正在等待 LATCH_EX。
當我查看等待資源時,它指的是 sys.sysobjvalues。
我很好奇為什麼會發生這種情況,以及其他人是否看到了這一點。我們最近將此序列的 CACHE 值從 DEFAULT (50) 更改為 200。鑑於我們如此頻繁地使用它,我認為這將提高呼叫序列的性能,但可能我錯了。
我們使用的是 SQL Server 2012 SP4。
其他 700 多個會話正在等待 LATCH_EX….我們最近將此序列的 CACHE 值從 DEFAULT (50) 更改為 200。
如果您有 700 個等待會話,我的第一個想法是考慮到工作負載,記憶體需要更高。我建議嘗試 500-1000 範圍內的東西(並且可能會繼續增加),直到您看到等待穩定或下降。應該有一個您可以找到具有較大記憶體值的最佳位置。