Sql-Server

OLTP - 拉伸數據庫與連結伺服器

  • November 14, 2016

據我了解,當您為表啟用 StretchDB 功能時,基本上會在本地創建一個連結伺服器,它有一個遠端伺服器作為將數據移動到的目標。

如果這是正確的,這是否意味著他們會遇到同樣的問題?如:

  • 獲取所有數據,然後過濾
  • 可怕的數據統計

Kendra Little在 Brent Ozar 的網站上有一段Youtube 影片,概述了其中一些問題。

它與您列出的問題有一組不同的問題(請參閱https://msdn.microsoft.com/en-us/library/mt605114.aspx)。

首先,它使用外部數據源,而不是連結伺服器。雖然功能上非常相似,但外部數據源是數據庫級別的對象,因此它與數據庫一起傳輸。連結伺服器是駐留在主伺服器中的實例級對象,當您需要將啟用了 StretchDB 的數據庫移動/恢復到另一個實例/伺服器時,需要額外的工作。

拉伸目標是一項 Azure 服務,由為 StretchDB 工作負載配置的 SQL Server 引擎提供支持。它不僅僅是一個文件或 blob。因此,查詢和謂詞下推確實會發生,因此您只是拉回查詢謂詞已經過濾的內容,而不是整個數據集。否則,這將毫無用處,因為它旨在保留 TB 的冷數據。我確信存在無法按預期工作的邊緣情況,但它們應該非常罕見。性能仍然可能很差,但對於某些邊緣情況的查詢。例如,您在本地和遠端數據集之間執行嵌套循環連接。其中一些可以優化或暗示,但我確信在某些情況下這是不可能的。對於那些,查詢性能可能真的很差,使他們成為 StretchDB 的差/非候選者。

至於統計資訊,目前創建和管理它們是一個手動過程,但在引擎中啟用自動統計資訊管理並不是一件非常困難的事情,所以我想這在未來應該不會太遠。在此之前,您需要通過 SSMS/sqlcmd 直接連接到 Azure 中的 StretchDB 數據庫以創建統計資訊,然後以適當的時間間隔更新它們。

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