適用於:Analytics Platform System (PDW)
在分析平台系統(PDW)中, ALTER DATABASE 修改複製資料表、分散式資料表及交易日誌的最大資料庫大小選項。 在資料庫的大小成長或壓縮時,使用此陳述式來管理它的磁碟空間配置。 本文也說明在 Analytics Platform System (PDW) 中設定資料庫選項的相關語法。
語法
-- Analytics Platform System
ALTER DATABASE database_name
SET ( <set_database_options> | <db_encryption_option> )
[;]
<set_database_options> ::=
{
AUTOGROW = { ON | OFF }
| REPLICATED_SIZE = size [GB]
| DISTRIBUTED_SIZE = size [GB]
| LOG_SIZE = size [GB]
| SET AUTO_CREATE_STATISTICS { ON | OFF }
| SET AUTO_UPDATE_STATISTICS { ON | OFF }
| SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
Arguments
database_name
要修改之資料庫的名稱。 若要顯示設備上資料庫的清單,請使用 sys.databases。
AUTOGROW = { ON |OFF }
更新 AUTOGROW 選項。 當 AUTOGROW 為 ON 時,Analytics Platform System (PDW) 會視需要針對複寫資料表、分散式資料表及交易記錄自動提高配置的空間,以適應儲存空間需求的增長。 當 AUTOGROW 為 OFF 時,如果複寫資料表、分散式資料表或交易記錄超過大小上限設定,Analytics Platform System (PDW) 就會傳回錯誤。
REPLICATED_SIZE = 大小 [GB]
指定每個計算節點的新 GB 上限,以用來儲存要改變之資料庫中的所有複寫資料表。 如果您要規劃設備儲存空間,則必須將REPLICATED_SIZE乘以設備中的計算節點數目。
DISTRIBUTED_SIZE = 大小 [GB]
指定每個資料庫的新 GB 上限,以用來儲存要改變之資料庫中的所有分散式資料表。 此大小會分佈於設備中的所有計算節點上。
LOG_SIZE = 大小 [GB]
指定每個資料庫的新 GB 上限,以用來儲存要改變之資料庫中的所有交易記錄。 此大小會分佈於設備中的所有計算節點上。
ENCRYPTION { ON |OFF }
設定資料庫要加密 (ON) 或是不要加密 (OFF)。 只有在將 sp_pdw_database_encryption 設為 1 時,才能針對 Analytics Platform System (PDW) 設定加密。 您必須先建立資料庫加密金鑰,才能設定透明資料加密。 如需資料庫加密的詳細資訊,請參閱透明數據加密(TDE)。
SET AUTO_CREATE_STATISTICS { ON |關掉 }
當自動建立統計數據選項AUTO_CREATE_STATISTICS為 ON 時,查詢優化器會視需要在查詢述詞中建立個別數據行的統計數據,以改善查詢計劃的基數估計值。 這些單一數據行統計數據是在現有統計數據物件中還沒有直方圖的數據行上建立的。
若為升級至 AU7 之後建立的新資料庫,預設值是 ON。 若為在升級之前建立的資料庫,預設值是 OFF。
如需統計資料的詳細資訊,請參閱統計資料
SET AUTO_UPDATE_STATISTICS { 開 |關掉 }
當自動更新統計數據選項AUTO_UPDATE_STATISTICS為 ON 時,查詢優化器會判斷統計數據可能過期的時間,然後在查詢使用統計數據時加以更新。 在數據表或索引檢視中的數據分佈因作業插入、更新、刪除或合併而變更後,統計數據就會變成過時。 查詢優化器會藉由計算上次統計數據更新后的數據修改數目,以及比較修改數目與臨界值,來判斷統計數據可能過期的時間。 臨界值是以數據表或索引檢視表中的數據列數目為基礎。
若為升級至 AU7 之後建立的新資料庫,預設值是 ON。 若為在升級之前建立的資料庫,預設值是 OFF。
如需統計資料的詳細資訊,請參閱統計資料。
SET AUTO_UPDATE_STATISTICS_ASYNC { ON |關掉 }
異步統計數據更新選項AUTO_UPDATE_STATISTICS_ASYNC會決定查詢優化器是否使用同步或異步統計數據更新。 AUTO_UPDATE_STATISTICS_ASYNC 選項會套用至針對索引所建立的統計資料物件、查詢述詞中的單一資料行,以及使用 CREATE STATISTICS 陳述式所建立的統計資料。
若為升級至 AU7 之後建立的新資料庫,預設值是 ON。 若為在升級之前建立的資料庫,預設值是 OFF。
如需統計資料的詳細資訊,請參閱統計資料。
許可
需要資料庫的 ALTER 權限。
錯誤訊息
如果已停用自動統計資料,而且您嘗試改變統計資料設定,PDW 會輸出錯誤 This option isn't supported in PDW。 系統管理員可以藉由啟用功能參數 AutoStatsEnabled 來啟用自動統計資料。
備註
REPLICATED_SIZE、DISTRIBUTED_SIZE 和 LOG_SIZE 的值可以大於、等於或小於資料庫的目前值。
Limitations
成長和壓縮作業很近似。 產生的實際大小會因大小參數而異。
Analytics Platform System (PDW) 不會以不可部分完成的作業執行 ALTER DATABASE 語句。 如果陳述式在執行期間中止,系統將會保留已發生的變更。
只有在系統管理員已啟用自動統計數據時,統計數據設定才能運作。如果您是系統管理員,請使用功能切換 AutoStatsEnabled 來啟用或停用自動統計數據。
鎖定方式
對 DATABASE 物件採取共用鎖定。 您無法改變其他使用者用於讀取或寫入的資料庫。 這包括已在資料庫上發出 USE \(英文\) 陳述式的工作階段。
Performance
根據資料庫內實際資料的大小及磁碟上的片段程度而定,壓縮資料庫可能需要大量的時間與系統資源。 例如,壓縮資料庫可能需要數小時以上的時間。
判斷加密進度
使用下列查詢來判斷資料庫透明資料加密的進度 (以百分比表示):
WITH
database_dek AS (
SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
dek.encryption_state, dek.percent_complete,
dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
type
FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
ON dek.database_id = node_db_map.database_id
AND dek.pdw_node_id = node_db_map.pdw_node_id
LEFT JOIN sys.pdw_database_mappings AS db_map
ON node_db_map .physical_name = db_map.physical_name
INNER JOIN sys.dm_pdw_nodes nodes
ON nodes.pdw_node_id = dek.pdw_node_id
WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
FROM database_dek
WHERE type = 'COMPUTE'
GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
database_dek.database_id,
ISNULL(
(SELECT TOP 1 dek_encryption_state.encryption_state
FROM database_dek AS dek_encryption_state
WHERE dek_encryption_state.database_id = database_dek.database_id
ORDER BY (CASE encryption_state
WHEN 3 THEN -1
ELSE encryption_state
END) DESC), 0)
AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';
如需示範實作 TDE 中所有步驟的完整範例,請參閱透明數據加密(TDE)。
範例:Analytics Platform System (PDW)
答: 改變 AUTOGROW 設定
針對 CustomerSales 資料庫,將 AUTOGROW 設為 ON。
ALTER DATABASE CustomerSales
SET ( AUTOGROW = ON );
B. 改變複寫資料表的儲存空間上限
下列範例會針對 CustomerSales 資料庫,將複寫資料表儲存空間限制設為 1 GB。 這是每個計算節點的儲存空間限制。
ALTER DATABASE CustomerSales
SET ( REPLICATED_SIZE = 1 GB );
C. 改變分散式資料表的儲存空間上限
下列範例會將資料庫的分散式資料表記憶體限制設定為 1,000 GB(1 TB),CustomerSales。 這是設備上所有計算節點的組合儲存空間限制,而非每個計算節點的儲存空間限制。
ALTER DATABASE CustomerSales
SET ( DISTRIBUTED_SIZE = 1000 GB );
D. 改變交易記錄的儲存空間上限
下列範例會更新 CustomerSales 資料庫,使其可在設備上擁有最多 10 GB 的 SQL Server 交易記錄大小。
ALTER DATABASE CustomerSales
SET ( LOG_SIZE = 10 GB );
E. 檢查目前的統計資料值
下列查詢會傳回所有資料庫目前的統計資料值。 值 1 表示功能已開啟,而 0 表示功能已關閉。
SELECT [name],
is_auto_create_stats_on,
is_auto_update_stats_on,
is_auto_update_stats_async_on
FROM sys.databases;
F. 啟用資料庫的自動建立與自動更新統計資料
使用下列陳述式,針對資料庫 CustomerSales 以自動且非同步的方式啟用建立和更新統計資料功能。 這會視需要建立和更新單一資料行統計資料,以建立高品質的查詢計劃。
ALTER DATABASE CustomerSales
SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
SET AUTO_UPDATE_STATISTICS_ASYNC ON;