南大通用GBase8s 常用SQL語句(十七)
南大通用GBase8s 常用SQL語句(十七)
更改 STATLEVEL 的示例
假設表 tabFrag 使用分片分佈儲存策略而不是 ROUND ROBIN ,且它包含一個名為 smartblob 的 BLOB 或 CLOB 列。決定保持該儲存分佈策略,但是使用 TABLE 而不是 FRAGMENT 作為 STATLEVEL 粒度。以下 SQL 語句引用了 tabFrag 表並擁有下列成功的作用:
l 將 STATLEVEL 更改為 TABLE ,通過使用 ALTER TABLE 的 Statistics 選項子句。
l 通過使用 UPDATE STATISTICS LOW 丟棄在 sysfragdist 系統目錄表中 tabFrag.smartblob 的當前分片級別分佈。
l 通過使用 UPDATE STATISTICS HIGH 為 sysdistrib 系統目標表中的 tabFrag 建立新的表級別統計資訊。
ALTER TABLE tabFrag STATLEVEL TABLE;
UPDATE STATISTICS LOW
FOR TABLE tabFrag (smartblob) DROP DISTRIBUTIONS
UPDATE STATISTICS HIGH
FOR TABLE tabFrag (smartblob);
以上最後一條語句,預設的 0.5 HIGH 決議意味著 tabFrag.smartblob 分佈統計資訊基於近似 200 bins 。
表的限制
跟隨在 ALTER TABLE 關鍵字之後的表名或同義詞的表必須是當前資料庫中的常駐表。它具有以下限制:
l 不能是臨時表。
l 不能是不是當前資料庫中的表。
l 不能是 CREATE EXTERNAL TABLE 語句定義的表物件。
l 不能是違例表或診斷表。
此外,您不能用 ALTER TABLE 語句進行以下操作:
l 新增、刪除或修改與違規表或診斷表關聯的表中列。
l 在 RAW 表上定義引用約束或唯一約束。
l 在列或列的集合上定義 將列作為索引鍵的限制 衝突的索引。
如果已設定了 USETABLENAME 環境變數,那麼您就不能在 ALTER TABLE 語句中指定表的 synonym 。
要使用 ALTER TABLE ,您的存取許可權必須至少滿足以下條件之一:
l 必須在包含該表的資料庫上擁有 DBA 許可權。
l 必須擁有該表。
l 必須擁有指定表上的 Alter 許可權並在表駐留的資料庫上擁有 Resource 許可權。
l 要新增引用約束,必須在引用列或引用表上擁有 DBA 許可權或 References 許可權。
· 要刪除約束,必須擁有 DBA 許可權或是約束的所有者。如果是約束的所有者但不是表的所有者,必須在指定的表上擁有 Alter 許可權。您不需要 References 許可權就能刪除約束。
Enterprise Replication 陰影列
當您更改表時,可以新增或刪除 Enterprise Replication 陰影列。
新增或刪除 Enterprise Replication 陰影列
語法
如果當您正在使用 ADD CRCOLS 、 ADD REPLCHECK 或 ADD ERKEY 關鍵字更改表時 Enterprise Replication 是活動的,則您必須用 cdr alter 命令將該表處於更改模式。
Enterprise Replication 使用 ADD CRCOLS 關鍵字建立陰影列( cdrserver 和 cdrtime )以解決衝突。如果該表的任一列的資料型別需要緩慢更改,那麼更改此表以新增 CRCOLS 陰影列會是一種緩慢的更改操作。緩慢更改操作需要的磁碟空間至少是初始表加日誌空間的兩倍。有關應用 ALTER TABLE 語句效能的資訊,請參閱 Altering a table definition 。
使用 DROP CRCOLS 關鍵字刪除 cdrserver 和 cdrtime 陰影列。您必須在刪除 cdrserver 和 cdrtime 陰影列之前停止複製。
ADD REPLCHECK 關鍵字建立此陰影列( ifx_replcheck ),您可以在此列建立一個索引與主鍵 ,以加速 Enterprise Replication 的一致性檢查的過程。向表中新增 ifx_replcheck 陰影列是一個緩慢的更改操作,它所需要的磁碟空間至少是初始表加日誌空間的兩倍。
使用 DROP REPLCHECK 關鍵字刪除 ifx_replcheck 陰影列。
Enterprise Replication 使用 ADD ERKEY 關鍵字建立陰影列 ifx_erkey_1 、 ifx_erkey_2 和 ifx_erkey_3 (代理主鍵)。 更改表以新增 ERKEY 陰影列是一個緩慢的更改操作。
使用 DROP ERKEY 關鍵字刪除 ifx_erkey_1 、 ifx_erkey_2 和 ifx_erkey_3 陰影列。
有關更多資訊,請參閱 使用 WITH CRCOLS 選項 、 使用 WITH REPLCHECK 關鍵字 、 使用 WITH ERKEY 關鍵字 和 GBase 8s Enterprise Replication 指南 。
示例
以下示例中,往 customer 表中新增了 cdrserver 和 cdrtime 陰影列:
ALTER TABLE customer ADD CRCOLS;
以下示例中,往 customer 表中新增了陰影列 ifx_replcheck :
ALTER TABLE customer ADD REPLCHECK;
以下示例刪除了 customer 表的 ifx_replcheck 列:
ALTER TABLE customer DROP REPLCHECK;
以下示例往 customer 表中新增了 ifx_erkey_1 、 ifx_erkey_2 和 ifx_erkey_3 列:
ALTER TABLE customer ADD ERKEY;
使用 ADD ROWIDS 關鍵字
使用 ADD ROWIDS 關鍵字將名為 rowid 的新列新增至已分片的表。(預設情況下,已分片的表不包含隱藏的 rowid 列。)當新增 rowid 列時,資料庫伺服器為每個在存續期間保持穩定的行分配一個唯一號碼。資料庫伺服器建立一個它用來查詢行的物理位置的索引。新增 rowid 列後,表的每一行包含了另外 4 個 位元組來儲存 rowid 值。
以下示例使用 ADD ROWIDS 選項向分片表 frag1 中新增了一個 INTEGER 型別的新 rowid 列:
ALTER TABLE frag1 ADD ROWIDS;
提示: 僅對分片表使用 ADD ROWIDS 子句。在非分片表中, rowid 列保持不變。建議將主鍵用作存取方法而不是利用 rowid 列。
有關 rowid 列的其它資訊,請參閱 GBase 8s 管理員參考手冊 。
使用 DROP ROWIDS 關鍵字
DROP ROWIDS 關鍵字可刪除您新增(用 ALTER TABLE 或 ALTER FRAGMENT 語句)到分片表上的 rowid 列。
以下示例刪除了 frag1 表的 rowid 列:
ALTER TABLE frag1 DROP RWIDS;
您無法刪除未分片表的 rowid 列。
使用 ADD VERCOLS 關鍵字
ADD VERCOLS 關鍵字建立用於支援複製伺服器更新的陰影列 ifx_insert_checksum 和 ifx_row_version 。
在以下示例中,向 customer 表中新增了 ifx_insert_checksum 和 ifx_row_version 陰影列:
ALTER TABLE customer ADD VERCOLS;
修改表以新增新的版本控制列是一種快速更改操作。
有關更多資訊,請參閱 使用 WITH VERCOLS 選項 和 GBase 8s 管理員指南 。
使用 DROP VERCOLS 關鍵字
使用 DROP VERCOLS 關鍵字刪除 ifx_insert_checksum 和 ifx_row_version 陰影列。
以下示例刪除了 customer 表的這些陰影列:
ALTER TABLE customer DROP VERCOLS;
GBASE 官網:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009077/viewspace-2839482/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 南大通用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資料庫