Ⅰ 資料庫表空間一般分為哪幾類
資料庫中主要的表空間類型有:
①永久表空間 ②撤銷表空間 ③臨時表空間
永久表空間:包含一些段,這些段在超出會話或事務的持續時間後持續存在。
撤銷表空間:可能有一些段在超出會話或事務末尾後仍然保留,但它為訪問被修改表的select語句提供讀一致性,同時為資料庫的大量閃回特性提供撤銷數據。然而,撤銷段主要用來存儲一些列在更新或刪除前的值,或者用於提供指示,表明不存在用於插入的行。
臨時表空間:包含暫時的數據,這些數據只存在於會話的持續時間,例如完成分類操作的空間不適合來自於內存。
大文件表空間可用於這3類表空間的任何一種,大文件表空間將維護點從數據文件移動到表空間,從而簡化了表空間的管理。大文件表空間只包含一個數據文件。
Ⅱ oracle為什麼要創建一個表空間和臨時表空間
臨時表空間用來進行一些運算和索引創建等,多數使用完會自動清理,而表空間是正常數據物理存儲的永久空間,兩者的用途不同,為了更好的管理所以區分開來創建。
臨時表空間主要用途是在資料庫進行CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等操作時用到,當運算完成之後系統會自動清理。
永久表空間則是真正用來進行正常數據存儲的實際物理存儲區域。
(2)資料庫連接池臨時表空間擴展閱讀
oracle表空間的類型:
1、永久性表空間:一般保存表、視圖、過程和索引等的數據。
2、臨時性表空間:只用於保存系統中短期活動的數據。
3、撤銷表空間:用來幫助回退未提交的事務數據。
Oracle表空間的作用:
1、決定資料庫實體的空間分配;
2、設置資料庫用戶的空間份額;
3、控制資料庫部分數據的可用性;
4、分布數據於不同的設備之間以改善性能;
5、備份和恢復數據。
Ⅲ Oracle資料庫臨時表空間用途問題
Oracle臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因是需要對查詢的中間結果進行排序。重啟資料庫可以釋放臨時表空間,如果不能重啟實例,而一直保持問題sql語句的執行,temp表空間會一直增長
Oracle臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因是需要對查詢的中間結果進行排序。
重啟資料庫可以釋放臨時表空間,如果不能重啟實例,而一直保持問題sql語句的執行,temp表空間會一直增長。直到耗盡硬碟空間。
Ⅳ 臨時表空間與表空間有什麼區別
臨時表空間,可自動釋放;而表空間中存儲表數據、函數、過程、序列等。是隨資料庫永久存在的。
由於Oracle工作時經常需要一些臨時的磁碟空間,這些空間主要用作查詢時帶有排序(Group by,Order by等)等演算法所用,當用完後就立即釋放,對記錄在磁碟區的信息不再使用,因此叫臨時表空間。一般安裝之後只有一個TEMP臨時表空間。
表空間是資料庫的邏輯劃分,一個表空間只能屬於一個資料庫。所有的資料庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。
Ⅳ oracle中表空間與臨時表空間是什麼意思有什麼作用
表空間是資料庫的邏輯劃分,一個表空間只能屬於一個資料庫。所有的資料庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。Oracle臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間,可自動釋放;而表空間中存儲表數據、函數、過程、序列等。是隨資料庫永久存在的。
Ⅵ 怎麼修改mysql資料庫臨時表空間大小
以MySQL 8.0 來說,通過查看 8.0 的官方文檔得知,8.0 的臨時表空間分為會話臨時表空間和全局臨時表空間,會話臨時表空間存儲用戶創建的臨時表和當 InnoDB 配置為磁碟內部臨時表的存儲引擎時由優化器創建的內部臨時表,當會話斷開連接時,其臨時表空間將被截斷並釋放回池中;也就是說,在 8.0 中有一個專門的會話臨時表空間,當會話被殺掉後,可以回收磁碟空間;而原來的 ibtmp1 是現在的全局臨時表空間,存放的是對用戶創建的臨時表進行更改的回滾段,在 5.7 中 ibtmp1 存放的是用戶創建的臨時表和磁碟內部臨時表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途發生了變化,5.7 版本臨時表的數據存放在 ibtmp1 中,在 8.0 版本中臨時表的數據存放在會話臨時表空間,如果臨時表發生更改,更改的 undo 數據存放在 ibtmp1 中;
總結:在 mysql5.7 時,殺掉會話,臨時表會釋放,但是僅僅是在 ibtmp 文件里標記一下,空間是不會釋放回操作系統的。如果要釋放空間,需要重啟資料庫;在 mysql8.0 中可以通過殺掉會話來釋放臨時表空間。
Ⅶ 如何查看臨時表空間的大小和剩餘空間
1、查看臨時表空間 (dba_temp_files視圖)(v_$tempfile視圖)select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用戶查看2、縮小臨時表空間大小
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;3、擴展臨時表空間:
方法一、增大臨時文件大小:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 resize 100m;方法二、將臨時數據文件設為自動擴展:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 autoextend on next 5m maxsize unlimited;方法三、向臨時表空間中添加數據文件:
SQL> alter tablespace temp add tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 size 100m;4、創建臨時表空間:
SQL> create temporary tablespace temp1 tempfile 『/u01/app/oracle/oradata/orcl/temp11.dbf』 size 10M;5、更改系統的默認臨時表空間:
--查詢默認臨時表空間
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';--修改默認臨時表空間
alter database default temporary tablespace temp1;所有用戶的默認臨時表空間都將切換為新的臨時表空間:
select username,temporary_tablespace,default_ from dba_users;--更改某一用戶的臨時表空間:
alter user scott temporary tablespace temp;6、刪除臨時表空間
刪除臨時表空間的一個數據文件:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 drop;刪除臨時表空間(徹底刪除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;7、查看臨時表空間的使用情況(GV_$TEMP_SPACE_HEADER視圖必須在sys用戶下才能查詢)GV_$TEMP_SPACE_HEADER視圖記錄了臨時表空間的使用大小與未使用的大小dba_temp_files視圖的bytes欄位記錄的是臨時表空間的總大小SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 usedFROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 totalFROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_nameORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;
Ⅷ 如何查看資料庫的默認表空間,與臨時表空間
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用戶查看
2、縮小臨時表空間大小
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;
3、擴展臨時表空間:
方法一、增大臨時文件大小:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 resize 100m;
方法二、將臨時數據文件設為自動擴展:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp01.dbf』 autoextend on next 5m maxsize unlimited;
方法三、向臨時表空間中添加數據文件:
SQL> alter tablespace temp add tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 size 100m;
4、創建臨時表空間:
SQL> create temporary tablespace temp1 tempfile 『/u01/app/oracle/oradata/orcl/temp11.dbf』 size 10M;
5、更改系統的默認臨時表空間:
--查詢默認臨時表空間
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默認臨時表空間
alter database default temporary tablespace temp1;
所有用戶的默認臨時表空間都將切換為新的臨時表空間:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用戶的臨時表空間:
alter user scott temporary tablespace temp;
6、刪除臨時表空間
刪除臨時表空間的一個數據文件:
SQL> alter database tempfile 『/u01/app/oracle/oradata/orcl/temp02.dbf』 drop;
刪除臨時表空間(徹底刪除):
SQL> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看臨時表空間的使用情況(GV_$TEMP_SPACE_HEADER視圖必須在sys用戶下才能查詢)
GV_$TEMP_SPACE_HEADER視圖記錄了臨時表空間的使用大小與未使用的大小
dba_temp_files視圖的bytes欄位記錄的是臨時表空間的總大小
SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name
ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;
希望能幫到您!
Ⅸ 創建臨時表空間和創建數據表空間是一個意思嗎(小弟初學)
拷貝一段內容給你看看:
創建用戶時的默認表空間用途:
用戶的默認表空間主要是在用戶創建資料庫對象時如果不顯示的指定創建的對象存儲的表空間時,會被默認放置的表空間。而用戶是可以在任何允許訪問的表空間上創建資料庫對象的。
用戶以後創建的資料庫對象將存放在此表空間內,創建用戶的時候還必須使用quota子句為用戶在默認表空間中分配空間配額,如果不指定默認表空間,ORACLE將會把SYSTEM表空間做為用戶的默認表空間,這種情況應該避免.
創建用戶時的臨時表空間:
當用戶所執行的SQL語句需要進行排序操作是,會要求獲取一定的臨時空間。這時,oracle將在用戶的臨時表空間中創建臨時段,該臨時段屬於sys用戶,而不是屬於用戶
用戶的臨時表空主要是用戶在執行大型的sql語句時所示用的臨時排序空間,如果臨時表空間不足在排序時則會使用硬碟進行排序,這會導致大量的磁碟讀寫操作,從而影響sql的執行性能。