在文章的最後看一下ORDER BY STOPKEY和ORDER BY在翻頁查詢的最後幾頁的效能差異:SQL> CREATE TABLE T AS SELECT A.* FROM DBA_OBJECTS A, DBA_USERS B, TAB;表已建立。SQL> SELECT COUNT(*) FROM T;COUNT(*)----------458064SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T')PL/SQL
Regex是很多程式設計語言中都有的。可惜oracle8i、oracle9i中一直遲遲不肯加入,好在oracle10g中終於增加了期盼已久的Regex功能。你可以在oracle10g中使用Regex肆意地匹配你想匹配的任何字串了。所謂Regex是對於字串進行匹配的一種模式。舉個例子來說字串’^198[0-9]$’可以匹配‘1980-1989’,也即80後出生的年份。如果希望統計出公司那些員工是80後的,就可以使用如下的SQL語句:select * from emp where
安裝ORACLE 10G時碰到一個頭大的問題,按照安裝指南一步步操作,你會發現有四個參數怎麼都設定不好,如下error: 'rmem_default' is an unknown keyerror: 'rmem_max' is an unknown keyerror: 'wmem_default' is an unknown keyerror: 'wmem_max' is an unknown
繼續看查詢的第二種情況,包含表串連的情況:SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS;表已建立。SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE;表已建立。SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (USERNAME);表已更改。SQL> ALTER TABLE T1 ADD CONSTRAINT
這篇文章通過例子說明分頁查詢使用的NESTED LOOP操作,在分頁查詢翻到最後幾頁時的效能問題:SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS;表已建立。SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE;表已建立。SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (USERNAME);表已更改。SQL> ALTER
這篇文章用幾個例子來說明分頁查詢的效率。首先構造一個比較大的表作為測試表:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS, DBA_SEQUENCES;表已建立。SQL> SELECT COUNT(*) FROM T;COUNT(*)----------457992首先比較兩種分頁方法的區別:SQL> SET AUTOT ONSQL> COL OBJECT_NAME FORMAT A30SQL> EXEC DBMS_
最後的例子說明內部迴圈包含排序的情況:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS;表已建立。SQL> CREATE INDEX IND_T_OBJECT_NAME ON T (OBJECT_NAME);索引已建立。SQL> ALTER TABLE T MODIFY OBJECT_NAME NOT NULL;表已更改。SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,