南大通用GBase8s 常用SQL語句(十六)
南大通用GBase8s 常用SQL語句(十六)
1.1 ALTER TABLE 語句
使用 ALTER TABLE 語句修改現有表的結構。
(要修改表的儲存分佈策略,您必須使用 ALTER FRAGMENT 語句而不是 ALTER TABLE 語句。)
語法
基本表選項
元素 |
描述 |
限制 |
語法 |
synonym |
要更改的表的同義詞 |
同義詞及其表必須存在;USETABLENAME 必須未設定 |
識別符號 |
table |
要更改的表的名稱 |
在當前資料庫中必須存在 |
識別符號 |
語法
GBase 8s 資料庫伺服器按您在 ALTER TABLE 語句中指定的順序執行操作。如果任一操作失敗,那麼整個操作將被取消。
ALTER TABLE 語句不能向一個未分片表中新增分片儲存策略,也不能修改分片表的儲存分片策略。有關新增、修改或刪除表的分片儲存策略的資訊,請參閱 ALTER FRAGMENT 語句 。
更改檢視依賴的表可能會使得檢視無效。
警告: 此語句可用的子句對效能的影響各不相同。採取更改操作之前,請檢查 GBase 8s 效能指南 中 更改表定義 中相應章節來檢查影響和策略。
您可以使用 Basic Table Options 段修改表的結構,方法是新增、修改或刪除列和約束,或更改 extent 大小或鎖定表的粒度。資料庫伺服器按您指定的順序執行更改。如果任一動作失敗,那麼整個操作將會取消。
在 GBase 8s ,您可以將表與已命名的 ROW 型別關聯,或指定新的儲存空間以儲存大物件資料。您也可以新增或刪除 rowid 列或隱藏列以支援輔助伺服器更新 USELASTCOMMITTED 功能的操作。然而,您不能與其他任何更改一起指定這些選項。
Logging TYPE 選項
使用 Logging TYPE 選項指定該表具有特殊特性,以提高對它的各種批量操作。
Logging TYPE 選項
這裡 STANDARD , CREATE TABLE 語句的預設選項 ,指定日誌記錄表, RAW 指定非日誌記錄表。
表可具有以下日誌記錄特性。
選項 作用
STANDARD 日誌記錄表允許回滾、還原和從歸檔恢復。這是預設值。 OLTP 資料庫使用這種型別的還原和限制功能。
RAW 非日誌記錄表不支援主鍵約束、唯一約束或參考約束。 RAW 表可擁有 NOT NULL 約束和 NULL 約束(但不能將這兩個約束設定在同一列)。它們可以被索引和更新。使用這種型別以快速載入資料。
Warning: 使用 RAW 表以快速載入資料。建議您在事務中使用此表前或更改表中的資料前,將日誌記錄型別更改為 STANDARD 並執行零級備份。如果您必須在事務中使用 RAW 表,則將其設定為 Repeatable Read 隔離級別或者以互斥方式鎖定該表以防止併發問題。
該 Logging TYPE 選項可以將非日誌記錄表(例如: RAW 表)轉換為 STANDARD 表,以支援事務日誌記錄。如果使用此功能,您必須注意資料庫伺服器沒有檢查該表上是否在執行一個零級歸檔。
RAW 表上的操作不會被日誌記錄及恢復,因此 RAW 表一直處於風險中。當資料庫伺服器將一個非日誌記錄的錶轉換為一個 STANDARD 表型別時,您有責在事務使用此表前或更新表中資料時,執行零級備份。否則,執行失敗可能引起在伺服器崩潰的事件中的還原問題。
有關表的日誌記錄型別的更多資訊,請參閱 GBase 8s 管理員指南 。
該 Logging TYPE 選項具有以下限制:
l 在此日誌記錄表從其它日誌記錄類別變更為 STANDARD 之前,您必須執行零級歸檔。
l 該表不能是 TEMP 表,並且您不能將表的任一這些型別的變更為一個 TEMP 表。
以下示例將一個非日誌記錄表更改為一個使用事務日誌記錄的表:
ALTER TABLE tabnolog TYPE (STANDARD);
以下示例將一個日誌記錄表更改為非日誌記錄表:
ALTER TABLE tablog TYPE (RAW);
ALTER TABLE 語句的 Statistics 選項
使用 ALTER TABLE 語句的 Statistics Options 子句更改分片表或未分片表的 STATCHANGE 屬性的值,和分片表的 STATLEVEL 屬性的值。這些表屬性控制重新計算的閾值和資料分佈統計資訊的粒度。
語法
該子句支援與 CREATE TABLE 語句的 Statistics 選項相同的語法。
元素 |
描述 |
限制 |
語法 |
change_ threshold |
定義過時的分佈統計資訊的已更改資料的百分比 |
必須是在 0 - 100 內的整數 |
精確數值 |
用法
Statistics 選項子句可修改表的統計屬性以允許使用者控制 UPDATE STATISTICS 操作(當此 SQL 語句在一個分片表上以 LOW 、 MEDIUM 或 HIGH 的方式執行時)。 ALTER TABLE 語句可以修改這些屬性的指定的或預設值(這些值在表建立時設定或者它們是由之前的 ALTER TABLE 語句設定的)。
Statistics 選項子句可將這兩個表的屬性設定為 STATCHANGE 和 STATLEVEL :
STATCHANGE 表指定需要考慮統計過時的更改的最小百分比(從該表中行的 UPDATE 、 DELETE 和 INSERT 操作或從上次計算分佈統計資訊的分片)。您可以指定 0 - 100 內的整數作為更改的百分比,或使用 AUTO 關鍵字應用在 ONCOFIG 檔案或會話環境中的當前的 STATCHANGE 配置引數作為預設的更改的閾值。
UPDATE STATISTICS 語句的 AUTO 關鍵字也能啟用比較用 STATCHANGE 已更改的設定值確定系統目錄中的 ` 統計資訊是否過時的行的比例。包含 AUTO 關鍵字的 UPDATE STATISTICS 語句只在當前的 UPDATE STATISTICS 操作期間啟動舊的統計的檢查(並只選擇性地更新過時或丟失統計資訊的表或分片)。
當 AUTO_STAT_MODE 配置引數或 AUTO_STAT_MODE 會話環境變數啟用了自動方式, UPDATE STATISTICS 語句使用顯式或預設的 STATCHANGE 值辨別表、索引或統計資訊丟失或過時的分片儲存策略,並只更改丟失的或過時的統計資訊。有關 UPDATE STATISTICS 操作的自動方式的資訊,請參閱 GBase 8s 管理員參考 中有關 AUTO_STAT_MODE 的資訊。
STATLEVEL 屬性可決定資料分佈粒度的級別和分片表的索引統計資訊。它可以採用其中以下三個值之一(如果在建立的時候它沒有值,則可使用 AUTO 作為預設值):
l TABLE 指定的該表的所有分佈儲存以表級別建立。
l FRAGMENT 指定的分佈是建立和維護每個分片。
l AUTO 指定資料庫伺服器在執行時決定分片級別分佈是否重要的標準。這些標準需要需要以下條件為真:
o SYSSBSPACENAME 配置引數設定指定了一個現有的 sbspace
o 該表按 EXPRESSION 、 INTERVAL 、 Rolling Window 、或 LIST 策略分片
o 該表有超過 100 萬行
如果任何一種標準沒有滿足,那麼資料庫伺服器建立表級別分佈而不是分片級別分佈。
會經常應用這些屬性。如果該 STATLEVEL 設定為 AUTO ,則此設定會重寫預設值。
注: 當初始化資料庫伺服器時,必須設定 SYSSBSPACENAME 配置引數,指定資料庫伺服器儲存分片級別資料分佈統計資訊的 sbspace 。它們作為儲存在 syfragsdist 系統目錄表的 encdist 列中 BLOB 物件。為了使資料庫伺服器支援分配級別統計資訊,SYSSBSPACENAME 配置引數設定必須指定一個現有的 sbspace 。
如果您使用 Statistics 選項子句將 STATLEVEL 屬性設定為 FRAGMENT ,且以下條件之一為真時,資料庫伺服器返回錯誤 -9814(" Invalid default sbspace name "):
l 未設定 SYSSBSPACENAME 配置引數
按 onspaces -c -S 命令分配給 SYSSBSPACENAME 指定的 sbspace 不合
GBASE 官網:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009077/viewspace-2839481/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 南大通用GBase8s SQL常用SQL語句(十九)SQL
- 南大通用GBase8s SQL常用SQL語句(二十)SQL
- 南大通用GBase8s 常用SQL語句(十五)SQL
- 南大通用GBase8s 常用SQL語句(十七)SQL
- 南大通用GBase8s SQL常用SQL語句(十八).docxSQL
- 南大通用GBase8s SQL常用SQL語句(二十一)SQL
- sql常用語句SQL
- 常用sql進階語句SQL
- SQL 常用語句一覽SQL
- mysql 常用sql語句 簡介MySql
- MySQL中常用的SQL語句MySql
- Android原生SQLite常用SQL語句AndroidSQLite
- sqlserver dba常用的sql語句SQLServer
- 資料庫常用的sql語句大全--sql資料庫SQL
- postgresql dba常用sql查詢語句SQL
- MySql常用操作SQL語句彙總MySql
- 資料庫常用操作SQL語句資料庫SQL
- 織夢cms常用的SQL語句_dedecmsSQL
- 1.4 資料庫和常用SQL語句(正文)——MySQL資料庫命令和SQL語句資料庫MySql
- 資料庫常用的sql語句彙總資料庫SQL
- 常用SQL語句1-增刪改查SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- SQL語句SQL
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- MySQL的一些常用的SQL語句整理MySql
- 【SQL】9 SQL INSERT INTO 語句SQL
- 【SQL】10 SQL UPDATE 語句SQL
- 【SQL】11 SQL DELETE 語句SQLdelete
- SQL SELECT 語句SQL
- 2024.10.24(SQL通用語法)SQL
- Matlab常用語句Matlab
- oracel常用語句
- ORACLE常用語句:Oracle
- mySql常用語句MySql
- 常用MSSQL語句SQL
- oracle常用後臺程序及sql語句執行流程OracleSQL
- mysql建表常用sql語句個人經驗分享MySql
- SQL Server 資料庫部分常用語句小結(二)SQLServer資料庫