Oracle分頁查詢語句(七)

在文章的最後看一下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

Oracle常見問題及解決方案

  沒有人會否認Oracle是全球最有影響的資料庫產品之一;但是龐大的系統,總是會出現各種各樣的問題,很多經驗不足的使用者面對著那些錯誤提示束手無策。本文是整理了Oracle資料庫在使用過程中一些常見的問題及解決方案,希望能給初學者一點啟示。  1、ORA-12541:TNS:沒有監聽器  原因:沒有啟動監聽器或者監聽器損壞。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是後者,則使用“Net8

Oracle ExpImp匯入匯出工具效能調優

  1 Exp調優  1.1 使用DIRECT和RECORDLENGTH選項  DIRECT參數定義了匯出是使用直接路徑方式(DIRECT=Y),還是常規路徑方式(DIRECT=N)。常規路徑匯出使用SQL

Oracle資料庫設計要做到五戒

  眾所周知,資料庫設計的好壞直接關係到資料庫啟動並執行效率。根據筆者的經驗,對於提升資料庫效能來說,合理的資料庫設計,比升級伺服器的硬體設定,還要來的有效。但是,筆者無論是在跟同事合作,又或者是在論壇上跟相關同行交流的時候,總是會發現有些人有一些不好的資料庫設計習慣,影響了資料庫的效能,增加了資料庫管理員的工作量。  筆者認為,為了提升資料庫的效能,在Oracle資料庫設計的時候,要做到五戒。  一戒:在小型表上不要建立索引。  毋庸置疑,索引可以提高資料庫查詢的效率。但是,俗話說,過之則不及

oracle中的Regex(regular expression)

Regex是很多程式設計語言中都有的。可惜oracle8i、oracle9i中一直遲遲不肯加入,好在oracle10g中終於增加了期盼已久的Regex功能。你可以在oracle10g中使用Regex肆意地匹配你想匹配的任何字串了。所謂Regex是對於字串進行匹配的一種模式。舉個例子來說字串’^198[0-9]$’可以匹配‘1980-1989’,也即80後出生的年份。如果希望統計出公司那些員工是80後的,就可以使用如下的SQL語句:select * from emp where

oracle中Regex相關函數regexp_like簡介

前面介紹了oracle中Regex構成的中繼資料,但僅僅知道中繼資料是不夠的,oracle中的Regex是結合其特定的4個函數使用的,其中用的最多的就是現在要介紹的的這個函數:regexp_likeregexp_like函數的基本構成是:regexp_like(x,pattern[,match_option])其準系統是在x中尋找pattern,如果能找到返回true否則返回false,這裡的選擇性參數match_option可以有如下幾種形式:‘c’ 表明進行匹配時區分大小寫(這也是預設選項)

Oracle中的資料類型隱式轉換(implicit conversion)

和其他的關係型資料庫一樣,oracle中也能進行一些隱式的資料轉換,這對我們寫SQL語句有非常用,我們可以不必麻煩地手動轉化很多類型的字元。雖然前面我們介紹了一些使用例如to_char,to_date的函數進行強制轉換的方法,但是隱式轉換也還是不錯的。Oracle可以隱式地進行一些變數類別之間轉化,例如從字串轉換到數值,看下面的例子。SQL> select ename,sal from emp where sal = ‘1100′; ENAME SAL——————– ———-SMITH 1

在oracle的彙總函式(sum、avg等)中使用NVL函數,強迫加入空值

前面我們在介紹oracle的彙總函式時提到如果在給定的值中存在空值的話,oracle將會忽略掉這些空值。這個處理的方式在大多數時候是符合我們要求的,但是在有些時候可能會有問題。例如,現在到了年關,公司會對部分員工進行獎勵,而當然會有一部分人沒有得到獎勵。比如現在有一張表中存的是員工的獎金額,那個將會有一部分人對應的獎金額是空值,因為他們根本就沒有得到獎勵,現在老闆讓你統計全公司的得獎平均額。如果你直接使用Select avg(bonus) from

Oracle分頁查詢語句(三)

繼續看查詢的第二種情況,包含表串連的情況: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

oracle中的彙總函式count、max、min、sum、avg等等

前面我們介紹了很多oracle中單行函數,在oracle中還存在另一類函數,那就是彙總函式,oracle中的彙總函式非常有用,主要是用來做些統計、平均之類的工作,你必須牢記。先簡單介紹一下幾個常用的oracle中的彙總函式。Oracle中彙總函式名稱函數的作用Count用來求有效資料的數量Max用來求給定資料中最大的那一個資料Min用來求給定資料中最小的那一個資料Avg用來求給定資料的平均值Sum用來求給定資料的總和Variance用來求給定資料的標準差Stddev用來求給定資料的方差先面是一些

Oracle分頁查詢語句(五)

前面的各種例子已經說明了分頁查詢語句的標準寫法所帶來的效能提升。這裡簡單總結一下,並簡單的說明分頁查詢語句在何時無法帶來效能提升。分頁查詢語句之所以可以很快的返回結果,是因為它的目標是最快的返回第一條結果。如果每頁有20條記錄,目前翻到第5頁,那麼只需要返回前100條記錄都可以滿足查詢的要求了,也許還有幾萬條記錄也符合查詢的條件,但是由於分頁的限制,在當前的查詢中可以忽略這些資料,而只需儘快的返回前100條資料。這也是為什麼在標準分頁查詢語句中經常會使用FIRST_ROWS提示的原因。對於行操作

Oracle分頁查詢語句(一)

Oracle的分頁查詢語句基本上可以按照本文給出的格式來進行套用。 分頁查詢格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21其中最內層的查詢SELECT * FROM TABLE_NAME表示不進行翻頁的原始查詢語句。ROWNUM <= 40和RN >=

在oracle中使用having關鍵字來限制你的分組結果

前面我們介紹了,使用oracle的彙總函式和group by關鍵字來對結果集合進行分組,這時就有了一個新的問題,例如,我們針對彙總函式那一列需要找到滿足條件的那些分組結果。我們可以使用where子句嗎?不行,我們需要的是使用having關鍵字。例如我們需要找出那些平均工資在$2000以上的部門。使用having關鍵字的寫法是:Select deptno,avg(sal) avg_salFrom empGroup by deptnoHaving avg(sal) >

Oracle分頁查詢語句(六)

這篇文章通過例子說明分頁查詢使用的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

Oracle分頁查詢語句(二)

這篇文章用幾個例子來說明分頁查詢的效率。首先構造一個比較大的表作為測試表: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_

Oracle分頁查詢語句(四)

最後的例子說明內部迴圈包含排序的情況: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,

oracle中的集合操作符

oracle中有一類操作符是對集合進行操作的,我們稱之為集合操作符(set operator),我們在前面已經分別介紹了每個集合操作符,這裡簡單總結一下,oracle中的集合操作符號主要有:union(all) 是用來將多個select語句的結果集合進行合并處理。其中union會壓縮各個結果集中的重複資料,而union all則不會。intersect 是用來求兩個集合的交集。minus是用來從一個結果集中去除另一個集合中包含的部分。 對與各個集合操作符, 需要注意的地方的如下:除了union

oracle的作業系統認證(connect as sysdba)登入方式

有一種oracle的登入方式是作業系統驗證登入方式,即常說的OS驗證登入方式,在SQL server中也有這種方式。有些朋友經常使用connect / as sysdba登入,但不知道為什麼沒有提供使用者名稱和密碼就得到了sysdba的許可權。還認為這樣是不是不安全呢?Oracle在常見的多使用者作業系統上都可以進行OS認證方式來登入。例如solaris,windows等等。下面以常見的windows作業系統來說明看一下這個作業系統認證方式登入的原理。如果你的機器可以使用connect /

oracleRegex函數之REGEXP_REPLACE和REGEXP_SUBSTR

前面我們介紹了oracle中Regex的基本元字元和常用的兩個函數regexp_like 和

oracle 自動備份、恢複功能

1.自動備份可以採用exp方式(前提是你要有匯出的許可權),並寫一個作業系統的指令碼,如果windows系統,可寫一個bat,在其中使用exp進行匯出,然後將BAT添加計劃任務。backup.bat --代碼如下:echo offexp system/sa@orcl file=d:\autobackup\ies%date%.dmp log=d:\autobackup\ies%date%_exp.log owner=(ies) buffer=655000

總頁數: 1509 1 .... 179 180 181 182 183 .... 1509 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.