當前位置:首頁 » 操作系統 » 資料庫臨時表空間

資料庫臨時表空間

發布時間: 2022-06-07 20:33:43

❶ 如何查看臨時表空間的大小和剩餘空間

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;

❷ Oracle資料庫臨時表空間用途問題

Oracle臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因是需要對查詢的中間結果進行排序。重啟資料庫可以釋放臨時表空間,如果不能重啟實例,而一直保持問題sql語句的執行,temp表空間會一直增長

Oracle臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因是需要對查詢的中間結果進行排序。

重啟資料庫可以釋放臨時表空間,如果不能重啟實例,而一直保持問題sql語句的執行,temp表空間會一直增長。直到耗盡硬碟空間。

❸ oracle為什麼要創建一個表空間和臨時表空間

臨時表空間用來進行一些運算和索引創建等,多數使用完會自動清理,而表空間是正常數據物理存儲的永久空間,兩者的用途不同,為了更好的管理所以區分開來創建。

臨時表空間主要用途是在資料庫進行CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等操作時用到,當運算完成之後系統會自動清理。

永久表空間則是真正用來進行正常數據存儲的實際物理存儲區域。

(3)資料庫臨時表空間擴展閱讀

oracle表空間的類型:

1、永久性表空間:一般保存表、視圖、過程和索引等的數據。

2、臨時性表空間:只用於保存系統中短期活動的數據。

3、撤銷表空間:用來幫助回退未提交的事務數據。

Oracle表空間的作用:

1、決定資料庫實體的空間分配;

2、設置資料庫用戶的空間份額;

3、控制資料庫部分數據的可用性;

4、分布數據於不同的設備之間以改善性能;

5、備份和恢復數據。

❹ 資料庫有哪些表空間各個表空間的作用是什麼

一、系統表空間
在 MySQL 數據目錄下有一個名為 ibdata1 的文件,可以保存一張或者多張表。
923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1
這個文件就是 MySQL 的系統表空間文件,默認為 1 個,可以有多個,只需要在配置文件 my.cnf 裡面這樣定義即可。
innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系統表空間不僅可以是文件系統組成的文件,也可以是非文件系統組成的磁碟塊,比如裸設備,定義也很簡單innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw
系統表空間里都有些啥內容?
具體內容包括:double writer buffer、 change buffer、數據字典(MySQL 8.0 之前)、表數據、表索引。
那 MySQL 為什麼現在主流版本默認都不是系統表空間?
究其原因,系統表空間有三個最大的缺點:原因 1:無法做到自動收縮磁碟空間,造成很大的空間浪費。即使它包含的表都被刪掉,這部分空間也不會自動釋放。
二、單表空間
單表空間不同於系統表空間,每個表空間和表是一一對應的關系,每張表都有自己的表空間。具體在磁碟上表現為後綴為 .ibd 的文件。比如表 t1,對應的表空間文件為 t1.ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1.ibd

單表空間如何應用到具體的表呢?
有兩種方式:方式 1:在配置文件中開啟。在配置文件中開啟單表空間設置參數 innodb_filer_per_table,這樣默認對當前庫下所有表開啟單表空間。innodb_file_per_table=1另外也可以直接建表時指定單表空間mysql> create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;
Query OK, 0 rows affected (0.04 sec)
單表空間除了解決之前說的系統表空間的幾個缺點外,還有其他的優點,詳細如下:
1. truncate table 操作比其他的任何錶空間都快;
2. 可以把不同的表按照使用場景指定在不同的磁碟目錄;
比如日誌表放在慢點的磁碟,把需要經常隨機讀的表放在 SSD 上等。
mysql> create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';
Query OK, 0 rows affected (0.04 sec)3. 可以用 optimize table 來收縮或者重建經常增刪改查的表。一般過程是這樣的:建立和原來表一樣的表結構和數據文件,把真實數據復制到臨時文件,再刪掉原始表定義和數據文件,最後把臨時文件的名字改為和原始表一樣的。
三、通用表空間
通用表空間先是出現在 MySQL Cluster 里,也就是 NDB 引擎。從 MySQL 5.7 引入到 InnoDB 引擎。通用表空間和系統表空間一樣,也是共享表空間。每個表空間可以包含一張或者多張表,也就是說通用表空間和表之間是一對多的關系。

❺ 如何查看資料庫默認臨時表空間

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;

❻ 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 中可以通過殺掉會話來釋放臨時表空間。

❽ 資料庫的一個小問題。創建臨時表空間。

表空間:此空間是用來進行數據存儲的(表、function、存儲過程等),所以是實際物理存儲區域。臨時表空間:主要用途是在資料庫進行排序運算[如創建索引、orderby及groupby、distinct、union/intersect/minus/、sort-merge及join、analyze命令

❾ 表空間和臨時表空間的區別

表空間:此空間是用來進行數據存儲的(表、function、存儲過程等),所以是實際物理存儲區域。
臨時表空間:主要用途是在資料庫進行排序運算[如創建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如創建索 引、IMP進行數據導入]、訪問視圖等操作時提供臨時的運算空間,當運算完成之後系統會自動清理。
備註:因為用途不同所以才有了區分,實際上資料庫都是有默認臨時空間的,但實際應用中很難滿足需求,所以才需要自己創建臨時空間。

❿ 臨時表空間與表空間有什麼區別

臨時表空間,可自動釋放;而表空間中存儲表數據、函數、過程、序列等。是隨資料庫永久存在的。
由於Oracle工作時經常需要一些臨時的磁碟空間,這些空間主要用作查詢時帶有排序(Group
by,Order
by等)等演算法所用,當用完後就立即釋放,對記錄在磁碟區的信息不再使用,因此叫臨時表空間。一般安裝之後只有一個TEMP臨時表空間。
表空間是資料庫的邏輯劃分,一個表空間只能屬於一個資料庫。所有的資料庫對象都存放在指定的表空間中。但主要存放的是表,
所以稱作表空間。

熱點內容
python字元串前u 發布:2024-11-01 05:34:23 瀏覽:458
伺服器搭建之後的維護 發布:2024-11-01 05:27:35 瀏覽:245
電腦加秘伺服器在哪啟動 發布:2024-11-01 05:26:02 瀏覽:983
路由器需要哪些配置 發布:2024-11-01 05:08:35 瀏覽:980
c語言小寫變大寫 發布:2024-11-01 05:06:47 瀏覽:553
伺服器級電腦主機聯想 發布:2024-11-01 05:06:46 瀏覽:658
資料庫工程師的 發布:2024-11-01 04:54:54 瀏覽:372
手機存儲擴充 發布:2024-11-01 04:41:13 瀏覽:53
上班密碼箱多少寸合適 發布:2024-11-01 04:39:08 瀏覽:454
訪問噴劑 發布:2024-11-01 04:26:32 瀏覽:622