Performance

配置 EXTENDED EVENT 時 MAX_DISPATCH_LATENCY 有什麼影響?

  • December 10, 2020

預設情況下,MAX_DISPATCH_LATENCY 設置為 30 秒。我選擇 FILE 作為目標並在那裡寫入所有擷取。我想如果我將所有擷取寫入文件,為什麼我會將 MAX_DISPATCH_LATENCY 降低到 1 秒,並通過這種方式防止擷取在記憶體中停留的最大持續時間為 30 秒。降低 MAX_DISPATCH_LATENCY 有什麼影響?

根據我的研究,調整該屬性聽起來不會真的發生任何可怕的事情,但它通常也不需要真正調整,因為 30 秒通常是一個很好的Extended Events會話值。

您可以在此處閱讀有關該屬性的更多資訊,但基本上其目的是為擷取的事件在記憶體緩衝區中停留的最大時間設置門檻值。擷取的事件通常在達到該門檻值之前被寫入其目的地,因此它更像是一個擷取所有限制。除了該門檻值之外,一旦緩衝區已滿,緩衝區也會被刷新到目的地。

最終,讓緩衝區以這種方式工作而不是每次都立即寫入目標的原因是因為 I/O 寫入記憶體的性能較低。從緩衝區到磁碟的持續寫入(例如,在您的情況下是文件)可能會受到磁碟瓶頸和/或導致磁碟瓶頸。當有大量數據時,對磁碟進行批量寫入性能最高,而當數據不多時,MAX_DISPATCH_LATENCY門檻值將處理將事件寫入文件。

引用自:https://dba.stackexchange.com/questions/254319