嘗試執行此SQL:的Oracle 10g:查詢從ALL_TAB_COLUMNS鑑於DATA_DEFAULT列需要很長的時間
select OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,
DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NULLABLE
from all_tab_columns
where owner = 'USER';
您需要修改所有者字符串的where子句。執行後,您可能會注意到它運行並不需要很長時間。現在像這樣添加DATA_DEFAULT列:
select OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,
DATA_PRECISION,DATA_SCALE,NULLABLE,DATA_DEFAULT
from all_tab_columns
where owner = 'USER';
這需要永遠。怎麼了DATA_DEFAULT列?
我的測試也導致了這種假設。我剛剛通過創建一個包含288條記錄的表來玩這個遊戲。它有一個VARCHAR2(10)和一個LONG。當我選擇返回VARCHAR2時,花費了0.140秒。但是,當我在選擇中包含LONG列時,需要8.737秒來返回288條記錄。 – oscilatingcretin 2011-08-20 22:36:36