⑴ Oracle 一次性拿出大量數據耗時多長
這個沒有可比性的
速度受到你的表結果、索引結構 、伺服器性能、並發數量 等各方面因素影響
在同樣條件下 取100W數據肯定比1億數據快很多 但從數據傳輸來說 都要快很多
⑵ oracle幾十萬數據如何一次導出
你好
你可以使用exp 或者是expdp 導出來
再或者使用其他工具導出insert腳本
在高級一點,使用RMAN也行
祝你好運
望採納
⑶ oracle 數據表最大多少條記錄
1、64位linux 和64位oracle,默認oracle表空間數據文件用的BLOCKSIZE是8k,表空間數據文件最大是32G。
SQL>show parameter k_cache_size
查看資料庫默認的塊大小
SQL> show parameter db_block_size
db_block_size integer 8192
2、為了讓一個表空間數據文件存64G,你需要告訴oracle用BLOCKSIZE 是16k
CREATE TABLESPACE TEST DATAFILE 『/data1/test_ts1.dbf』 SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 16k;
提前需要設置db_16k_cache_size
alter system set db_16k_cache_size=16M scope=both;
否則會報錯ORA-29339:
tablespace block size 16384 does not match configured block sizes
3、為了讓一個表空間數據文件存128G,你需要告訴oracle用BLOCKSIZE 是32k
4、32位linux 和32位oracle,默認oracle表空間datafile用的BLOCKSIZE也是8k,表空間數據文件最大也是32G。試了一下64G文件,也沒有問題。
⑷ oracle 按百分比提取數據
select * from 表名 sample(60) where 類型='1'
union
select * from 表名 sample(30) where 類型='2'
union
select * from 表名 sample(10) where 類型='3';
---
以上,希望對你有所幫助。
⑸ 怎樣提取oracle資料庫中前N個數據
oracle中取前N個數據,可用rownum實現。
如emp表中有如下數據:
⑹ oracle如何取多表數據
select * from (
select * from t201501
union all
select * from t201502
union all
……
select * from t201512
) where name = '李雷';
⑺ oracle中有沒有一次性插入多條數據的語句
如果使用其他表裡的數據是可以的,通過查詢結果插入,insert into ...as select *from table 相當於了後面的表數據。但是新增只能一條條插入。
⑻ Oracle資料庫取數問題
select a.國家,a.數量 from (select rownum 排序,國家,數量 from table order by 國家 desc) a where a.排序<6
union all
select '其他',sum(a.數量) from (select rownum 排序,國家,數量 from table order by 國家 desc) a where a.排序>5
一條語句也可以實現,不過要嵌套三層,可能效率還沒這個高呢。
⑼ Oracle 中實現隨機抽取數據
一、Oracle取隨機數據 1、Oracle訪問數據的基本方法: 1)、全表掃描(Full table Scan):執行全表掃描,Oracle讀表中的所有記錄,考查每一行是否滿足WHERE條件。Oracle順序的讀分配給該表的每一個數據塊,且每個數據塊Oracle只讀一次.這樣全表掃描能夠受益於多塊讀. 2)、采樣表掃描(sample table scan):掃描返回表中隨機采樣數據,這種訪問方式需要在FROM語句中包含SAMPLE選項或者SAMPLE BLOCK選項. 註:從Oracle8i開始Oracle提供采樣表掃描特性
2、使用sample獲得隨機結果集 2.1、語法: SAMPLE BLOCK [ SEED (seed_value) ] SAMPLE選項:表示按行采樣來執行一個全表掃描,Oracle從表中讀取特定百分比的記錄,並判斷是否滿足WHERE子句以返回結果。 BLOCK: 表示使用隨機塊例舉而不是隨機行例舉。 sample_percent:是隨機獲取一張表中記錄的百分比。比如值為10,那就是表中的隨機的百分之10的記錄。 值必須大於等於.000001,小於100。
SEED:表示從哪條記錄返回,類似於預先設定例舉結果,因而每次返回的結果都是固定的。該值必須介於0和4294967295之間。
2.2、舉例說明
(1)sample(sample_percent):
(2)、sample block(sample_percent)
(3)、sample block(sample_percent) seed(seed_value)
注意以下幾點:
1.sample只對單表生效,不能用於表連接和遠程表 2.sample會使SQL自動使用CBO
3、使用DBMS_RANDOM包 DBMS_RANDOM有兩種主要的使用方法分別是:DBMS_RANDOM.VALUE()和DBMS_RANDOM.RANDOM
4、使用 內部函數sys_guid()
****注:****
在使用sys_guid() 這種方法時,有時會獲取到相同的記錄,即和前一次查詢的結果集是一樣的,查找相關資料,有些說是和 操作系統 有關,在windows平台下正常,獲取到的數據是隨機的,而在 Linux 等平台下始終是相同不變的數據集,有些說是因為sys_guid()函數本身的問題,即sys_guid()會在查詢上生成一個16位元組的全局唯一標識符,這個標識符在絕大部分平台上由一個宿主標識符和進程或進程的線程標識符組成,這就是說,它很可能是隨機的,但是並不表示一定是百分之百的這樣。
所以,為確保在不同的平台每次讀取的數據都是隨機的,我們大多採用使用sample函數或者DBMS_RANDOM包獲得隨機結果集,其中使用sample函數更常用,因為其查詢時縮小了查詢范圍,在查詢大表,且要提取數據不是很不多的情況下,會對查詢速度上有明顯的提高。
⑽ oracle 插入數據的時候,默認是多少條記錄提交一次
你是怎麼訪問資料庫的?
1、如果你是直接操作資料庫的話,你不commit它是不會提交的,除非你最後exit的時候會自動提交。
2、如果你是通過jdbc連接的話,在你沒設置事務的時候,默認是自動提交的,也就是說一次操作提交一次,當然了這個你是可以自己設置的。
希望能幫到你