您通過控制台查看或修改RDS SQL Server資料庫的各類屬性,也可以手動收縮資料庫交易記錄和更新資料庫統計資訊,以最佳化資料庫效能和提高查詢效率。
前提條件
已建立資料庫。建立方法,請參見建立資料庫。
查看或修改資料庫屬性
注意事項
部分修改資料庫屬性的操作會導致該資料庫進入短暫的獨佔模式,系統會斷開當前該資料庫的所有串連,復原現有事務進行修改。當資料庫負載較高時,修改操作可能會失敗。因此建議您在業務低峰期執行該操作,以免影響業務的正常運行。
獨佔模式是指在資料庫中只允許一個使用者或一個進程對資料庫進行操作,其他使用者或進程不能訪問或操作該資料庫,必須等待當前操作完成後才能進行下一步操作。
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中單擊資料庫管理。
單擊目標資料庫操作列下的查看詳情,查看資料庫的屬性值。
在Allowed Values列下修改屬性值,單擊提交。
收縮資料庫交易記錄
使用情境
如果資料庫的交易記錄檔使用量(LogUsedSizeInMB)相對於資料庫交易記錄檔總大小(TotalLogSizeInMB)的佔比較小,並且該資料庫的log_reuse_wait_desc屬性為Nothing時,您可以通過收縮資料庫交易記錄減少該資料庫記錄檔的磁碟空間佔用。
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中單擊資料庫管理。
單擊操作列下的更多 > 收縮資料庫交易記錄。
單擊確定。
更新資料庫統計資訊
由於資料庫中的資料量和分布會隨著時間的推移而發生變化,您可以定期更新統計資料,以保證查詢最佳化工具的準確性和效能。
使用情境
當資料庫進行大版本升級時,新版本可能會引入新的資料類型、儲存引擎或查詢最佳化工具等,這可能會導致舊的統計資訊不再準確或不再適用。此時,您可以通過該功能來更新資料分布資訊,以適應新版本引擎。
當將資料庫從線下轉移到雲端時,由於環境發生了變化,可能需要重新最佳化資料庫效能。此時,您可以通過該功能來提高查詢效能和最佳化查詢計劃。
如果使用者的業務資料分布不均勻,或者執行了大量的刪除或更新操作但更新量不足20%,或者出現其他SQL Server內建自動更新統計資訊無法覆蓋的情境時,您可以通過該功能來提升查詢效能。
說明SQL Server預設會啟用自動更新統計資訊的機制,但在某些情況下,自動更新統計資訊的頻率可能會滯後於實際資料變化,從而導致查詢效能下降。SQL Server自動更新統計資訊的機制,請參見微軟官方文檔。
注意事項
更新統計資料操作可能會導致較高的IO佔用,因此建議您在業務低峰期執行該操作,以免影響業務的正常運行。
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中單擊資料庫管理。
單擊操作列下的更多 > 更新資料庫統計資訊。
單擊確定。
附錄:資料庫屬性
基礎資訊
屬性名稱 | 說明 |
page_verify | 資料庫頁驗證的層級。預設值為CHECKSUM,使用資料頁的校正和進行驗證。 |
target_recovery_time_in_seconds | 在發生故障時,資料庫恢複所需的目標時間(秒)。預設值為60。 |
compatibility_level | 資料庫與特定版本的相容性層級。取值如下:
|
parameterization | SQL Server如何處理參數。取值如下:
|
read_committed_snapshot | 讀取資料時是否使用快照隔離。取值如下:
|
collation_name | 資料庫的定序及字元編碼。更多詳情,請參見修改字元集定序與時區。 |
auto_close | 是否自動關閉資料庫連接。預設值為OFF(關閉)。 |
recovery_model_desc | 資料庫的復原模式。預設值為FULL,表示完整復原模式。 |
auto_update_statistics | 是否啟用統計資訊自動更新。取值如下:
|
auto_update_statistics_async | 是否非同步更新統計資料。取值如下:
|
allow_snapshot_isolation | 是否啟用快照隔離等級。取值如下:
|
state_desc | 資料庫狀態。ONLINE表示資料庫處於線上狀態。 |
create_date | 資料庫建立時間。 |
log_reuse_wait_desc | 當前記錄檔不可以被重用的原因,NOTHING表示當前沒有任何限制。 |
運行時資訊
屬性名稱 | 說明 |
TotalDataSizeInMB | 當前資料庫的資料檔案佔用的總空間(MB)。 |
DataUsedSizeInMB | 當前資料庫的資料檔案已使用的空間(MB)。 |
TotalLogSizeInMB | 當前資料庫的記錄檔佔用的總空間(MB)。 |
LogUsedSizeInMB | 當前資料庫的記錄檔已使用的空間(MB)。 |
VLFCount | 當前資料庫的虛擬記錄檔(VLF)的數量。 |
LastestBackupTime | 當前資料庫的最新備份的時間。 |
LastestBackupType | 當前最近一次Database Backup的類型。取值如下:
|
進階資訊
屬性名稱 | 說明 |
ansi_nulls | 是否啟用ANSI NULLS。如果啟用,則等於NULL的值將不會與其他值進行比較,而是會被視為未知值。取值如下:
|
recursive_triggers | 是否允許觸發器遞迴執行。取值如下:
|
delayed_durability | 是否啟用延遲耐久性。延遲耐久性允許事務在提交後,將資料非同步寫入磁碟,從而提高交易處理效能。取值如下:
|
ansi_warnings | 是否啟用ANSI警告。啟用後,如果執行的操作會導致警告,則會返回警告資訊。取值如下:
|
ansi_null_default | 在插入資料時,如果指定的值為NULL,則該列是否接受NULL值。取值如下:
|
ansi_padding | 是否啟用ANSI填充。啟用後,如果插入的資料長度不足,則會使用填充符進行填充。取值如下:
|
concat_null_yields_null | 在拼接NULL值時,是否返回NULL。如果啟用,則拼接NULL值時會返回NULL。取值如下:
|
相關API
您可以通過API修改RDS SQL Server資料庫屬性,請參見ModifyDatabaseConfig - 修改資料庫屬性。