㈠ oracle 查詢哪些表佔用空間
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 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;
㈡ 如何查看臨時表空間的大小和剩餘空間
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;
㈢ 如何在SQL企業管理器中查看各表佔用空間
sp_spaceused查表大小
也可以查master庫的sysindexes, reserved欄位是表佔了多少頁.一頁是8K.
企業管理器中只能看這個表有多少行,每行數據類型及長度,具體這個表多大你要去計算(行不能跨頁,一頁最多8K數據.你計算你一行需要佔多少位元組,就知道一頁能放這個表多少行,再用總行數一除就知道多少頁了 ).
㈣ 如何監測誰用了SQL Server的Tempdb空間
作為一個支持工程師,會被經常問到象「我的Tempdb為什麼這么大?」「是誰把我的Tempdb空間用完的?」在SQL 2000的時候,這個問題很難回答。好在SQL 2005以後,引入了一張新的管理視圖:sys.dm_db_file_space_usage。通過查詢這張視圖,能了解tempdb的空間使用情況,能知道tempdb的空間是被哪一塊對象使用掉的,是用戶對象(user_object_reserved_page_count欄位),還是系統對象(internal_object_reserved_page_count欄位),還是版本存儲區(version_store_reserved_page_count欄位)。
在討論Tempdb空間使用之前,我們先簡單介紹一下通常什麼操作會大量使用Tempdb。在SQL 2005和SQL 2008里,使用Tempdb空間的遠遠不止是臨時表。常見的使用對象有:
用戶對象(user_object_reserved_page_count)
用戶對象由用戶顯式創建。這些對象可以位於用戶會話的作用域中,也可位於創建對象所用常式的作用域中。 可以是存儲過程、觸發器或用戶定義函數。 用戶對象可以是下列項之一:
用戶定義的表和索引
系統表和索引
全局臨時表和索引
局部臨時表和索引
table 變數
表值函數中返回的表
內部對象(internal_object_reserved_page_count)
內部對象是根據需要由 SQL Server 資料庫引擎創建的,用於處理 SQL Server 語句。 內部對象可以在語句的作用域中創建和刪除。 內部對象可以是下列項之一:
用於游標。
用於哈希聯接或哈希聚合操作的查詢。
某些 GROUP BY、ORDER BY 或 UNION 查詢的中間排序結果。
版本存儲(version_store_reserved_page_count)
版本存儲區主要用來支持Snapshot事務隔離級別,以及SQL 2005以後推出的一些其他提高資料庫並發度的新功能。
由此可見,光從用戶發過來的語句本身,是很難判斷這個連接的操作是否會使用Tempdb的。一個典型的例子,就是某些查詢。如果表格上有良好的索引做支持,SQL Server不需要做哈希聯接(Hash Join),那這個查詢就不會用Tempdb。反之,如果表格很大,又沒有好的索引,那Tempdb使用量就可能不小。
tempdb空間使用的一大特點,是只有一部分對象,例如用戶創建的臨時表、table變數等,可以用sys.allocation_units 和sys.partitions這樣的管理視圖來管理。許多內部對象和版本存儲在這些管理視圖里沒有體現。所以,sp_spaceused的結果和真實使用會有很大差異,tempdb的空間使用是不能用sp_spaceused來跟蹤的。必須藉助sys.dm_db_file_space_usage這樣的管理視圖和管理函數,才能看到全貌。
下面以一個實例,討論一下如何用DBCC命令、管理視圖(DMV)以及管理函數(DMF)來監視是什麼語句正在使用tempdb。
為了使結果簡單,我們在測試之前先把SQL Server重起一次。
㈤ 如何查看sql server 2005 express 資料庫佔用多少空間
如果是要查看一個資料庫的空間的話,就C:\Program
Files\Microsoft
SQL
Server\MSSQL.1\MSSQL\Data
目錄下找到你要查看的資料庫文件(2個,一個是mdf文件,一個是ldf文件),
找到後查看屬性就可以知道了,
如果想看所有的資料庫總的佔用空間的話,就直接查看C:\Program
Files\Microsoft
SQL
Server\MSSQL.1\MSSQL\Data
目錄的佔用空間就可以了,
呵呵,希望能有幫助,^_^
㈥ 怎麼查看消耗臨時表空間過大的歷史sql
SELECTD.TABLESPACE_NAME,SPACE"SUM_SPACE(M)",BLOCKSSUM_BLOCKS,USED_SPACE"USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2)"USED_RATE(%)",NVL(FREE_SPACE,0)"FREE_SPACE(M)"FROM(SELECTTABLESPACE_NAME,ROUND(SUM(BYTES)/(1
㈦ 如何查看臨時表空間的使用情況
1. 查看所有表空間大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;
2. 已經使用的表空間大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;
3. 所以使用空間可以這樣計算
select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;
4. 下面這條語句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
5. 還有在命令行情況下如何將結果放到一個文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
㈧ oracle 9i 查詢臨時表空間佔用率的sql,最好能和oem統計出來的結果一致!
SELECT a.tablespace_name,
TO_CHAR(NVL(b.bytes / 1024 / 1024, 0),'99,999,990.900') "Size (M)",
TO_CHAR(NVL(c.used_bytes /1024/1024, 0),'99999999.999') "Using (M)",
TO_CHAR(NVL(c.used_bytes / b.bytes * 100, 0), '990.00') "Using %"
FROM dba_tablespaces a,
(select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) b,
(select tablespace_name, sum(bytes_used) used_bytes from v$temp_extent_pool group by tablespace_name) c
WHERE a.tablespace_name = b.tablespace_name(+)
AND a.tablespace_name = c.tablespace_name(+)
AND a.contents = 'TEMPORARY'
㈨ 如何使用SQL語句查詢資料庫及表的空間容量
--1、查看錶空間的名稱及大小
select
t.tablespace_name,
round(sum(bytes/(1024*1024)),0)
ts_size
from
dba_tablespaces
t,
dba_data_files
d
where
t.tablespace_name
=
d.tablespace_name
group
by
t.tablespace_name;
--2、查看錶空間物理文件的名稱及大小
select
tablespace_name,
file_id,
file_name,
round(bytes/(1024*1024),0)
total_space
from
dba_data_files
order
by
tablespace_name;
3.查看所有表空間使用情況
select
b.file_id
文件ID號,
b.tablespace_name
表空間名,
b.bytes/1024/1024||'M'位元組數,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M'
已使用,
sum(nvl(a.bytes,0))/1024/1024||'M'
剩餘空間,
round(100
-
sum(nvl(a.bytes,0))/(b.bytes)*100,2)||
'%'
佔用百分比
from
dba_free_space
a,dba_data_files
b
where
a.file_id=b.file_id
group
by
b.tablespace_name,b.file_id,b.bytes
order
by
b.file_id;
總有一款適合你!
㈩ 如何查看SQL server中各表佔用空間的大小,並排列輸出
創建存儲過程:
CREATEPROCEDURE[dbo].[sys_viewTableSpace]
AS
BEGIN
SETNOCOUNTON;
CREATETABLE[dbo].#tableinfo(
表名[varchar](50)COLLATEChinese_PRC_CI_ASNULL,
記錄數[int]NULL,
預留空間[varchar](50)COLLATEChinese_PRC_CI_ASNULL,
使用空間[varchar](50)COLLATEChinese_PRC_CI_ASNULL,
索引佔用空間[varchar](50)COLLATEChinese_PRC_CI_ASNULL,
未用空間[varchar](50)COLLATEChinese_PRC_CI_ASNULL
)
insertinto#tableinfo(表名,記錄數,預留空間,使用空間,索引佔用空間,未用空間)
execsp_MSforeachtable"execsp_spaceused'?'"
select*from#tableinfo
orderby記錄數desc
droptable#tableinfo
END
使用的時候直接:execsys_viewtablespace