oracle表空間資料庫
⑴ 在Oracle資料庫中如何查詢某一個表空間下的某張表裡面的數據;怎麼查詢某個表空間下的所有表的信息
查看當前用戶的預設表空間
select username,default_tablespace from user_users
查看當前用戶的角色
select * from user_role_privs
查看當前用戶的系統許可權和表級許可權
select * from user_sys_privs
select * from user_tab_privs
查看用戶下所有的表
select * from user_tables
⑵ oracle 怎麼查看一個資料庫中有幾個表空間
SELECTt.tablespace_name,
round(SUM(bytes/(1024*1024)),0)ts_size
FROMdba_tablespacest,dba_data_filesd
WHEREt.tablespace_name=d.tablespace_name
GROUPBYt.tablespace_name;
⑶ 怎麼查看oracle 表空間屬於哪個資料庫
oracle數據只能創建一個資料庫實例
在一個資料庫下可以有多個表空間
在一個資料庫下可以有多個用戶,每個用戶可使用不同的表空間
用戶下,可以建立資料庫表,表也可以在不同的表空間
查詢資料庫中的表空間
#查數據文件select*fromv$dbfile;
#所有表空間select*fromv$tablespace;
#表空間的數據文件selectfile_name,tablespace_namefromdba_data_files;
查詢/修改用戶默認表空間
selectusername,default_tablespace,temporary_tablespacefromuser_users;
alteruser用戶名defaulttablespace新表空間;
查看錶所在的表空間
selecttable_name,tablespace_namefromall_tables/dba_tables/user_tables;
⑷ 在Oracle資料庫中表空間和資料庫什麼區別
MS sql用戶登錄就能創建資料庫的意思是她本身就有一個資料庫,你連的是默認資料庫。oracle安裝的時候也會問你是否在安裝資料庫軟體的時候創建一個實例,如果你同意創建實例那麼你連接進來的時候也會有個默認的資料庫給你去創建表之類的東西。所以根本上這些都是差不多,都是因為他們裡面有實例在運行了。
再說說oracle建表的順序:首先肯定有資料庫實例啦,就是我們常說的資料庫;之後創建表空間;表空間建好了就創建用戶注意設置用戶的表空間,賦許可權;之後就用這個用戶創建表,這些表就好到這個用戶的默認表空間下了。
⑸ oracle 中 表空間和資料庫是什麼關系
表空間作為邏輯存儲概念,包含物理的數據文件來構成,
資料庫作為存儲數據的地方,必然要包含存儲,就是這樣的關系了。
⑹ oracle資料庫建表和表空間設計
這個數據的多少和表空間的選擇和你的數據量多少是沒有太大關系的,需要統計你的數據量的大小。如果數據量很大,像你說的3*100*2000萬*1.5k需要估算一下他是有多少G?這樣才好設計表空間的分配。從10g開始有表空間支持一個大的數據文件,由多個文件組成肯定沒有一個文件好管理,但是如果出問題了一個大數據文件損壞肯定造成的損失很大。這就是易維護性和安全性的取捨。不知道你們磁碟陣列是怎麼做的如果沒有raid1,數據又很重要的話,也許添加多個數據文件。但是多個數據文件的添加,每個數據文件的大小又受到OS的影響,這個和DB_block_size的大小又有關系,具體演算法我不細講,結論是單個數據文件最多32G。所以這個時候就看你的數據量大小了,你只說量,但是也許有lob欄位之類的我無法估算大小,所以這個你自己算一下,如果需要的數據文件過多的話,你想方便維護也是可以使用大數據文件。sql如下:
SQL> create bigfile tablespace giapblob ----------------表空間名字
2 datafile 'H:\ypx\pic02.dbf' ----------------數據文件名字路徑
3 size 204800M ----------------200G的bigfile
4 autoextend on next 1024M -----------------擴展自動1G
5 maxsize unlimited -----------------不限最大
6 extent management local autoallocate; ----------------自動管理分配區間
其中上述只是從管理方便的角度考慮一個表空間的處理方法,一般單個表空間最大限制是1022個數據文件*4M數據塊*DB_BLOCK_SIZE=32TB。如果數據量過大,必須採用多表空間。
另外也要考慮需求中的使用性能,如果表數據量過大,比如你們每天2000萬,那有沒有歷史表數據?這個如果是OLAP還好說,OLTP可能要做分區表等等一系列的性能考慮,情況不同選擇不同。
⑺ 如何查看oracle資料庫中的表空間
oracle 資料庫里查看錶空間使用狀況;
oracle表空間的事情狀況要經常查看,一般空閑比例過低的時候就應該考慮增大表看空間了。查看方法如下SQL:
方法一:
select dbf.tablespace_name,
dbf.totalspace "總量(M)",
dbf.totalblocks as 總塊數,
dfs.freespace "剩餘總量(M)",
dfs.freeblocks "剩餘塊數",
(dfs.freespace / dbf.totalspace) * 100 "空閑比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)
方法二:
SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name
當發現有的表空間不夠的錯誤時,處理如下:
1:找出該表空間對應的數據文件及路徑
select * from dba_data_files t
where t.tablespace_name = 'ARD'
2:增大數據文件
alter database datafile '全路徑的數據文件名稱' resize ***M
3:增加數據文件
alter tablespace 表空間名稱
add datafile '全路徑的數據文件名稱' ***M
註解:表空間盡量讓free百分比保持在10%以上,如果低於10%就增加datafile或者resizedatafile,一般數據文件不要超過2G
⑻ 在Oracle中資料庫、表空間、表之間的關系
在oracle中,表空間是存儲概念上的,建立表空間需要有對應的數據文件,數據文件建立好之後直接會把一定的磁碟空間分配給它,這樣可以對資料庫的存儲空間進行有效的管理。然後在建表的時候指定對應的表空間,該表的數據就會都存在表空間對應的數據文件上,和Mysql那種每個表一個文件的方式比起來,存儲的可控性更強。
oracle和mysql不同,不存在mysql中那種資料庫的概念,而是實例的概念,當然,也可以在實例里建立不同的user來區分,每個user對應的表都是相對獨立的,比如兩個user下可以分別建同名的表,但又可以通過授權來交互使用。
建資料庫是在安裝oracle之後執行dbca建立實例。
建表空間語句是 CREATE TABLESPACE TBS_DEFAULT DATAFILE
'/app/oradata/sys_tbs/tbs_default.dbf' size 500M
LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
/
這里主要是需要指定對應的datafile。
建表基本都一樣,例如
create table (col_1 number(8),col_2 char(2),col_3 date)
tablespace tbs_default
/
資料庫就不要刪除了,這方面你看下關於user操作的語句就可以了。
drop tablespace tbs_name including contents and datafiles;--刪除表空間及數據文件
drop table tab_name purge; -- 刪除表。
⑼ 怎樣查詢oracle資料庫中所有的表空間
1、首先需要找到oracle安裝目錄,打開控制台管理。
⑽ oracle 資料庫 表空間
創建表用戶
並指定表空間(test123_TEMP為一個臨時表空間名)
create
user
test000
identified
by
test000
default
tablespace
test123
temporary
tablespace
test123_TEMP;
給用戶付許可權
GRANT
CONNECT,RESOURCE,DBA
TO
ODJUKE;