自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教您如何解決oracle分頁查詢數(shù)據(jù)重復(fù)問題

數(shù)據(jù)庫 Oracle
oracle數(shù)據(jù)的存儲(chǔ)位置決定了分頁返回的數(shù)據(jù)的排序,如果數(shù)據(jù)的物理位置發(fā)生了改變,就可能會(huì)引起分頁數(shù)據(jù)重復(fù)的現(xiàn)象。

oracle分頁查詢時(shí),會(huì)遇到數(shù)據(jù)重復(fù)的問題,下面就教您一個(gè)解決oracle分頁查詢數(shù)據(jù)重復(fù)問題的方法,希望對(duì)您能夠有所幫助。

在oracle分頁查詢中,我們采用類似以下所示的公認(rèn)的比較高效的數(shù)據(jù)庫分頁查詢語句(Effective Oracle by Design中有描述、眾多oracle使用者也做過測(cè)試)。

寫道

  1. SELECT * FROM  
  2. (  
  3. SELECT A.*, ROWNUM RN  
  4. FROM (SELECT * FROM TABLE_NAME) A  
  5. WHERE ROWNUM <= n)  
  6. WHERE RN > m 

這里的ROWNUM是一個(gè)偽列,它是oracle為查詢結(jié)果所編的一個(gè)號(hào),***行的 ROWNUM為1,第二行為2,以此類推。

因?yàn)閛racle是按塊進(jìn)行讀取數(shù)據(jù)的,如果數(shù)據(jù)按順序存儲(chǔ),則可能使讀取出來的數(shù)據(jù)是按順序的,給用戶誤解為默認(rèn)排序。事實(shí)上,oracle沒有進(jìn)行任何排序操作,如果sql沒有要求排序,oracle會(huì)順序的從數(shù)據(jù)塊中讀取符合條件的數(shù)據(jù)返回到客戶端。所以在沒有使用排序sql的時(shí)候,分頁返回的數(shù)據(jù)可能是按順序的,也可能是雜亂無章的,這都取決與數(shù)據(jù)的存儲(chǔ)位置。在oracle分頁查詢過程中,如果數(shù)據(jù)的物理位置發(fā)生了改變,就可能會(huì)引起分頁數(shù)據(jù)重復(fù)的現(xiàn)象。

所以,要正確使用oracle分頁查詢,sql語句中必須有排序條件。

但是,在有排序條件的時(shí)候,仍然會(huì)出現(xiàn)數(shù)據(jù)重復(fù)的現(xiàn)象,這是為什么呢?

通過了解oracle的排序機(jī)理就會(huì)明白,出現(xiàn)這種情況的原因是因?yàn)榕判蛄兄档牟?**性。 Oracle這里使用的排序算法不具有穩(wěn)定性,也就是說,對(duì)于鍵值相等的數(shù)據(jù),這種算法完成排序后,不保證這些鍵值相等的數(shù)據(jù)保持排序前的順序。

解決的方法是在后邊增加一個(gè)***性列,比如主鍵。

所以解決方法如下(兩個(gè)條件必須同時(shí)滿足):

1.sql語句中需要有排序條件。

2.排序條件如果沒有***性,那么必須在后邊跟上一個(gè)***性的條件,比如主鍵。

 

 

【編輯推薦】

Oracle with語句的用法

查詢Oracle日志文件的方法

Oracle并行查詢方式的利用

oracle并行查詢一列的實(shí)現(xiàn)

Oracle分頁查詢語句介紹

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-10-27 16:56:05

Oracle重復(fù)記錄

2010-11-18 16:27:37

2010-10-08 11:41:38

PHP連接MYSQL

2010-11-24 14:03:28

mysql表索引

2010-09-24 18:47:23

SQL數(shù)據(jù)分頁

2010-11-18 16:41:13

oracle死鎖

2010-09-26 13:51:48

SQL游標(biāo)

2010-10-26 10:48:16

ORACLE備份

2024-12-05 09:06:58

2010-04-29 17:46:31

Oracle死鎖

2010-10-27 17:04:41

Oracle動(dòng)態(tài)查詢

2010-10-28 11:29:18

ORACLE用戶權(quán)限

2010-11-16 09:49:22

Oracle重建索引

2010-08-26 10:29:11

DB2許可證

2021-09-26 06:43:07

MySQL深分頁優(yōu)化

2021-11-09 10:20:15

MySQL深分頁數(shù)據(jù)庫

2021-09-27 13:33:03

MySQL深分頁數(shù)據(jù)庫

2010-09-26 13:56:43

SQL遠(yuǎn)程查詢

2010-11-25 10:44:30

2009-03-04 13:32:28

排序SQLOracle
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)