在表上更新/刪除操作並不會將表放在 In-Memory 資料庫中 (文件 ID 2179002.1)
適用於:
Oracle Database - Enterprise Edition - 版本 12.1.0.2 和更高版本本文件所含資訊適用於所有平臺
目標
無論何時我們想放置表到 in-memory 中,我們需要訪問整個表以把表放入 in-memory。
這篇文件將提供資訊說明,一個表上更新/刪除語句將不會像查詢語句一樣把表放置到 in-memory 中。
解決方案
已經使用 In-Memory 的配置資訊:
SQL> show parameter inmemory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
inmemory_clause_default string
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 2
inmemory_query string ENABLE
inmemory_size big integer 200M
inmemory_trickle_repopulate_servers_ integer 1
percent
optimizer_inmemory_aware boolean TRUE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
inmemory_clause_default string
inmemory_force string DEFAULT
inmemory_max_populate_servers integer 2
inmemory_query string ENABLE
inmemory_size big integer 200M
inmemory_trickle_repopulate_servers_ integer 1
percent
optimizer_inmemory_aware boolean TRUE
連線到 sales 使用者實施測試:
SQL> conn sh/oracle
Connected.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
SQL> alter table times inmemory priority critical;
Table altered.
SQL> select TABLE_NAME,INMEMORY_PRIORITY,INMEMORY_DISTRIBUTE,INMEMORY_COMPRESSION from user_tables where table_name='TIMES';
TABLE_NAME INMEMORY INMEMORY_DISTRI INMEMORY_COMPRESS
------------------------- -------- --------------- -----------------
TIMES CRITICAL AUTO FOR QUERY LOW
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
SQL> update times times set END_OF_CAL_YEAR=sysdate;
1826 rows updated.
SQL> commit;
Commit complete.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
Connected.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
SQL> alter table times inmemory priority critical;
Table altered.
SQL> select TABLE_NAME,INMEMORY_PRIORITY,INMEMORY_DISTRIBUTE,INMEMORY_COMPRESSION from user_tables where table_name='TIMES';
TABLE_NAME INMEMORY INMEMORY_DISTRI INMEMORY_COMPRESS
------------------------- -------- --------------- -----------------
TIMES CRITICAL AUTO FOR QUERY LOW
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
SQL> update times times set END_OF_CAL_YEAR=sysdate;
1826 rows updated.
SQL> commit;
Commit complete.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS;
no rows selected
上面的更新語句沒有把表放置到 in-memory:
用簡單查詢比較:
SQL> select count(*) from times;
COUNT(*)
----------
1826
1 row selected.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS
SEGMENT_NAME INMEMORY_SIZE BYTES
------------------------------ ------------- ----------
TIMES 1179648 524288
1 row selected.
COUNT(*)
----------
1826
1 row selected.
SQL> SELECT segment_name, inmemory_size, bytes FROM V$IM_SEGMENTS
SEGMENT_NAME INMEMORY_SIZE BYTES
------------------------------ ------------- ----------
TIMES 1179648 524288
1 row selected.
上面的查詢語句把表放置到 in-memory 中。
透過上面的測試結果,我們可以看出更新/刪除語句不會把表放入到 in-memory 資料庫,除非我們訪問整個表的所有行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2129700/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE資料庫中刪除表資料後,資料庫表空間已使用不會自動減少Oracle資料庫
- 刪除資料庫表空間資料庫
- MySQL(四) 資料表的插入、更新、刪除資料MySql
- MySQL之資料庫和表的基本操作(建立表、刪除表、向表中新增欄位)MySql資料庫
- 在資料庫中如何驗證 In-Memory 選項的使用 (文件 ID 2178917.1)資料庫
- Oracle批量建立、刪除資料庫表Oracle資料庫
- MongoDB資料庫中更新與刪除資料MongoDB資料庫
- PostgreSQL刪除表中重複資料SQL
- 如何刪除大表中的資料
- MongoDB 資料庫建立刪除、表(集合)建立刪除、資料增刪改查MongoDB資料庫
- MySQL刪除資料表MySql
- 刪除大表資料
- 【C/C++】資料庫刪除大表C++資料庫
- 資料庫 - 索引、基本表建立與刪除資料庫索引
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- Oracle中刪除表中的重複資料Oracle
- postgresql VACUUM 不會從表中刪除死行的三個原因SQL
- 【MySQL】批量刪除mysql中資料庫中的表MySql資料庫
- mysql 刪除表中重複的資料MySql
- 海量資料表刪除方案
- MySQL資料庫表誤刪除恢復(一)MySql資料庫
- 如何刪除資料庫下的所有表(mysql)資料庫MySql
- 如何對 ABAP 資料庫表透過 ABAP 程式碼進行更新和刪除操作試讀版資料庫
- ORACLE資料庫刪除表中記錄報record is locked by another userOracle資料庫
- MySQL---資料刪除之後表檔案不變MySql
- 【原創】通過資料字典操作刪除表的列
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- MYSQL資料庫表記錄刪除解決方案MySql資料庫
- 刪除資料庫所有使用者表(SqlServer)資料庫SQLServer
- python 刪除大表資料Python
- 刪除表裡重複資料
- SQL Server實戰二:建立、修改、複製、刪除資料庫表並加以資料處理SQLServer資料庫
- 在 BCB5 中實現永久刪除資料表記錄 (轉)
- oracle 失誤刪掉資料檔案後,刪除表空間操作Oracle
- oracle 查詢及刪除表中重複資料Oracle
- mysql 查詢及 刪除表中重複資料MySql
- SQL刪除資料庫裡所有表的外來鍵,同時刪除所有使用者表SQL資料庫