Oracle隨機抽取記錄的方法
Oracle中隨機抽取10條記錄:
select * from (select * from tablename order by order by dbms_random.value) where rownum<11
這個方法的原理我認為應該是把表中的資料全部查詢出來按照隨機數進行排列後在從查詢出來的資料中查詢中6條記錄,這個方法我在使用的過程中發現,如果記錄一多的話查詢的速度有一點點的慢,測試時是7000條,如果幾萬幾十萬的話可能就更慢了。
第二個是利用oracle的sample()或sample block方法:
select * from tablename sample ( 50 ) where rownum<6
Oracle訪問資料的基本方法有:
1.全表掃描
2.取樣表掃描
全表掃描(Full table Scan)
全表掃描返回表中所有的記錄。
執行全表掃描,Oracle讀表中的所有記錄,考查每一行是否滿足WHERE條件。Oracle順序的讀分配給該表的每一個數
據塊,這樣全表掃描能夠受益於多塊讀.每個資料塊Oracle只讀一次.
取樣表掃描(sample table scan)
取樣表掃描返回表中隨機取樣資料。
這種訪問方式需要在FROM語句中包含SAMPLE選項或者SAMPLE BLOCK選項.
SAMPLE選項:
當按行取樣來執行一個取樣表掃描時,Oracle從表中讀取特定百分比的記錄,並判斷是否滿足WHERE子句以返回
結果。
SAMPLE BLOCK選項:
使用此選項時,Oracle讀取特定百分比的BLOCK,考查結果集是否滿足WHERE條件以返回滿足條件的紀錄.
Sample_Percent:
Sample_Percent是一個數字,定義結果集中包含記錄佔總記錄數量的百分比。
Sample值應該在[0.000001,99.999999]之間。
相關文章
- sql隨機抽取記錄SQL隨機
- 使用Oracle分析函式隨機抽取N條記錄Oracle函式隨機
- [Q]隨機抽取前N條記錄的問題zt隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- 隨機取表記錄隨機
- uniapp 隨機抽取影片播放APP隨機
- mysql 隨機查詢記錄MySql隨機
- MongoDB隨機查詢返回一條或N條記錄的方法MongoDB隨機
- 隨機更新:補題記錄x隨機
- 隨機跳題記錄簿 - 1隨機
- 開發:隨筆記錄之 生成6位隨機數筆記隨機
- 整理記錄一些好用的隨機圖API隨機API
- [Z]Oracle 的隨機數、隨機日期和時間、隨機字串Oracle隨機字串
- 大量輸入流中,隨機求m個記錄隨機
- ORACLE產生隨機數的多種方法分享 轉Oracle隨機
- 隨機記錄併發查詢與更新(轉移、刪除)的”無恥”優化方法隨機優化
- Oracle中取固定記錄數的方法薦Oracle
- 從資料集中隨機抽取一定數量的資料隨機
- ORACLE裡的隨機數Oracle隨機
- PostgreSQL隨機記錄返回-300倍提速實踐(隨機陣列下標代替orderbyrandom())SQL隨機陣列random
- oracle快速向表中插入記錄方法Oracle
- 使用Django從資料庫中隨機取N條記錄的不同方法及其效能實測Django資料庫隨機
- Oracle隨機函式的取法Oracle隨機函式
- Oracle中Hint隨記Oracle
- Oracle 隨機函式Oracle隨機函式
- oracle隨機取樣Oracle隨機
- 有感而發,隨筆記錄筆記
- python生成隨機數的方法Python隨機
- 20240505記錄《程式碼隨想錄》筆記筆記
- Oracle RAC 錯誤記錄以及處理方法Oracle
- MySQL如何選擇隨機記錄?有好幾種方式呢!MySql隨機
- vivo手機匯出微信聊天記錄方法
- 生成隨機整數方法隨機
- (轉)Oracle的隨機數、隨機日期和時間、隨機字串及造資料匿名過程Oracle隨機字串
- (轉)Oracle隨機函式Oracle隨機函式
- oracle插入隨機資料Oracle隨機
- numpy各種生成隨機數的方法隨機
- 編寫一個constructor來實現檔案裡面資料的隨機抽取Struct隨機