Oracle:检测到 NOT INMEMORY 列
Oracle: detect a NOT INMEMORY column
我创建了一个 table,其中包含 NOT INMEMORY 列:
CREATE TABLE myTable (
foo VARCHAR2(20 BYTE) NOT NULL,
bar VARCHAR2(20 BYTE) NOT NULL,
baz VARCHAR2(2000 BYTE) NOT NULL,
);
ALTER TABLE myTable INMEMORY;
ALTER TABLE myTable NO INMEMORY ("baz") ;
我需要做的是通过查询静态数据字典视图来识别 NO INMEMORY 列,但是它出现 all_tables
, all_tab_columns
和类似的不携带此信息,我可以' 在文档中找到提到的一个。有什么观点吗?
您可以使用 ALL_TABLES
和 V$IM_COLUMN_LEVEL
视图来获取信息。该信息是在 Oracle-Base.
上找到的
SQL> select inmemory from all_tables
2* where table_name = 'MYTABLE';
INMEMORY
___________
ENABLED
SQL> SELECT table_name,
2 segment_column_id,
3 column_name,
4 inmemory_compression
5 FROM v$im_column_level
6 WHERE table_name = 'MYTABLE'
7* ORDER BY segment_column_id;
TABLE_NAME SEGMENT_COLUMN_ID COLUMN_NAME INMEMORY_COMPRESSION
_____________ ____________________ ______________ _______________________
MYTABLE 1 FOO DEFAULT
MYTABLE 2 BAR DEFAULT
MYTABLE 3 BAZ NO INMEMORY
我创建了一个 table,其中包含 NOT INMEMORY 列:
CREATE TABLE myTable (
foo VARCHAR2(20 BYTE) NOT NULL,
bar VARCHAR2(20 BYTE) NOT NULL,
baz VARCHAR2(2000 BYTE) NOT NULL,
);
ALTER TABLE myTable INMEMORY;
ALTER TABLE myTable NO INMEMORY ("baz") ;
我需要做的是通过查询静态数据字典视图来识别 NO INMEMORY 列,但是它出现 all_tables
, all_tab_columns
和类似的不携带此信息,我可以' 在文档中找到提到的一个。有什么观点吗?
您可以使用 ALL_TABLES
和 V$IM_COLUMN_LEVEL
视图来获取信息。该信息是在 Oracle-Base.
SQL> select inmemory from all_tables
2* where table_name = 'MYTABLE';
INMEMORY
___________
ENABLED
SQL> SELECT table_name,
2 segment_column_id,
3 column_name,
4 inmemory_compression
5 FROM v$im_column_level
6 WHERE table_name = 'MYTABLE'
7* ORDER BY segment_column_id;
TABLE_NAME SEGMENT_COLUMN_ID COLUMN_NAME INMEMORY_COMPRESSION
_____________ ____________________ ______________ _______________________
MYTABLE 1 FOO DEFAULT
MYTABLE 2 BAR DEFAULT
MYTABLE 3 BAZ NO INMEMORY