關於 informix 中檢視錶所在資料庫空間的問題
關於 informix 中檢視錶所在資料庫空間的問題
最近想查一個表所在的資料庫空間,結果還是挺麻煩的,如下:
一、如果建表的時候沒有使用 in 指定資料庫空間(或者表也沒有分段),則用 dbschema -d 資料庫名 -t 表名 -ss 是看不到該表所處的資料庫空間的。見例1.1
(在 《IBM Informix Dynamic Server管理員指南》11.5版本的P2-22可以看到“可以在建立表(通常用 create table 的 in dbspace 選項)時,透過命名資料庫空間將表放到特定的資料庫空間中。當您不指定資料庫空間時,資料庫伺服器會將該表放置在資料庫駐留的資料庫空間中。”)
例1.1
> create table lilei(c1 int);
Table created.
> !dbschema -d nmosdb -t lilei -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 11.50.FC4DE
{ TABLE "informix".lilei row size = 4 number of columns = 1 index size = 0 }
create table "informix".lilei
(
c1 integer
) extent size 16 next size 16 lock mode page;
revoke all on "informix".lilei from "public" as "informix";
> drop table lilei;
Table dropped.
> create table lilei(c1 int) in fmdbs;
Table created.
> !dbschema -d nmosdb -t lilei -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 11.50.FC4DE
{ TABLE "informix".lilei row size = 4 number of columns = 1 index size = 0 }
create table "informix".lilei
(
c1 integer
) in fmdbs extent size 16 next size 16 lock mode page;
revoke all on "informix".lilei from "public" as "informix";
>
二、 使用系統表 SYSFRAGMENTS 的 partname 欄位。
如果這個表沒有分段,或者這個表沒有索引(即使建立表時使用 in 選項),則在這個系統表中是查不到的。見例1.2
例1.2
> drop table lilei;
Table dropped.
> create table lilei(c1 int);
Table created.
> select * from sysfragments where tabid in(select tabid from systables where tabname='lilei');
No rows found.
> create index ix_lilei on lilei(c1);
Index created.
> select * from sysfragments where tabid in(select tabid from systables where tabname='lilei');
fragtype I
tabid 547
indexname ix_lilei
colno 0
partn 25166354
strategy I
location L
servername
evalpos 0
exprtext
exprbin
exprarr
flags 2
dbspace nmosdbs
levels 1
npused 1.000000000000
nrows 0.00
clust 0.00
partition nmosdbs
1 row(s) retrieved.
例1.3 (接例1.2)
> !dbschema -d nmosdb -t lilei -ss;
DBSCHEMA Schema Utility INFORMIX-SQL Version 11.50.FC4DE
{ TABLE "informix".lilei row size = 4 number of columns = 1 index size = 9 }
create table "informix".lilei
(
c1 integer
) extent size 16 next size 16 lock mode page;
revoke all on "informix".lilei from "public" as "informix";
create index "informix".ix_lilei on "informix".lilei (c1) using
btree in nmosdbs;
>
三、在建立索引時如果不指定 in 選項,則索引與表處於同一個資料庫空間,所以也可以在有索引且建立索引時沒有使用 in 選項的表上使用 dbschema -ss 來看這個表所在的資料庫空間,見例1.3
那麼我現在就有一個問題:如何檢視一個沒有索引,且在建立表時沒有使用 in 選項的非分段表所處在資料庫空間?難道只能按照以下方法了嗎?如果有人知道,也請麻煩告訴我一下,先謝謝啦!
在 《IBM Informix Dynamic Server管理員指南》11.5版本的P2-22可以看到“可以在建立表(通常用 create table 的 in dbspace 選項)時,透過命名資料庫空間將表放到特定的資料庫空間中。當您不指定資料庫空間時,資料庫伺服器會將該表放置在資料庫駐留的資料庫空間中。”
即這類表的資料庫空間與該表所在資料庫的資料庫空間一致。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22565551/viewspace-1029528/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於hibernate+informix資料庫的問題,急ORM資料庫
- oracle 資料庫裡檢視錶空間使用狀況;Oracle資料庫
- 怎樣檢視錶空間下的資料物件物件
- informix資料空間映象操作步驟ORM
- 檢視錶空間及資料檔案的checkpoint資訊
- 關於資料庫間連結問題彙總---Oracle資料庫Oracle
- 關於STM8的使用者資料空間讀寫問題
- 檢視資料庫表空間資料庫
- oracle 檢視錶空間Oracle
- Sybase資料庫空間相關資料庫
- 請問,關於資料庫連線的問題。資料庫
- 關於資料庫和jdbc的問題,指教資料庫JDBC
- 關於資料庫緩衝池的問題資料庫
- Oracle檢視錶空間大小Oracle
- oracle 檢視使用者所在的表空間Oracle
- informix 幾個常見問題對資料庫版本的要求ORM資料庫
- 關於sqlserver2005 資料庫日誌佔用空間過大問題的處理思路SQLServer資料庫
- 關於JPetstore連線資料庫問題資料庫
- oracle檢視錶空間使用情況及某表是否被鎖的問題Oracle
- 關於oracle資料庫訊號量的問題Oracle資料庫
- 請教關於資料庫連線的問題資料庫
- 關於資料庫死鎖問題的解釋資料庫
- 檢視Oracle資料庫表空間大小,是否需要增加表空間的資料檔案Oracle資料庫
- 檢視資料庫佔用磁碟空間的方法資料庫
- windows cmd中檢視某個命令所在的路徑Windows
- 關於資料共享的問題
- oracle的空間資料庫:Oracle資料庫
- 關於資料庫連線的一些小問題資料庫
- 關於tomcat資料庫連線池的問題Tomcat資料庫
- 關於一個資料庫列設計的問題資料庫
- 關於下拉選單查詢資料庫的問題資料庫
- 檢視mysql資料庫空間使用情況MySql資料庫
- informix 資料庫啟動關閉指令碼ORM資料庫指令碼
- 關於讀取資料庫配置資原始檔問題資料庫
- db2檢視錶空間和增加表空間容量DB2
- 不同資料庫間傳遞資料的問題資料庫
- oracle 檢視錶空間使用情況Oracle
- 關於如何釋放表空間的問題(About Reclaimable Unused Space)AI