當前位置:首頁 » 數據倉庫 » 查詢資料庫佔用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

查詢資料庫佔用

發布時間: 2022-05-05 21:31:31

⑴ Mysql中查詢所有資料庫佔用磁碟空間大小和單個庫中所有表的大小的sql語句

查詢所有資料庫佔用磁碟空間大小的SQL語句:
復制代碼
代碼如下:
select
TABLE_SCHEMA,
concat(truncate(sum(data_length)/1024/1024,2),'
MB')
as
data_size,
concat(truncate(sum(index_length)/1024/1024,2),'MB')
as
index_size
from
information_schema.tables
group
by
TABLE_SCHEMA
order
by
data_length
desc;
查詢單個庫中所有表磁碟佔用大小的SQL語句:
復制代碼
代碼如下:
select
TABLE_NAME,
concat(truncate(data_length/1024/1024,2),'
MB')
as
data_size,
concat(truncate(index_length/1024/1024,2),'
MB')
as
index_size
from
information_schema.tables
where
TABLE_SCHEMA
=
'TestDB'
group
by
TABLE_NAME
order
by
data_length
desc;
以上語句測試有效,注意替換以上的TestDB為資料庫名

⑵ 如何使用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;
總有一款適合你!

⑶ 如何查詢oracle 資料庫性能,sql資源佔用

作為一個開發/測試人員,或多或少都得和資料庫打交道,而對資料庫的操作歸根到底都是SQL語句,所有操作到最後都是操作數據,那麼對sql性能的掌控又成了我們工作中一件非常重要的工作。下面簡單介紹下一些查看oracle性能的一些實用方法:

1、查詢每台機器的連接數

selectt.MACHINE,count(*)fromv$sessiontgroupbyt.MACHINE

這里所說的每台機器是指每個連接oracle資料庫的伺服器,每個伺服器都有配置連接資料庫的連接數,以websphere為例,在數據源中,每個數據源都有配置其最大/最小連接數。

執行SQL後,可以看到每個伺服器連接oracle資料庫的連接數,若某個伺服器的連接數非常大,或者已經達到其最大連接數,那麼這台伺服器上的應用可能有問題導致其連接不能正常釋放。

2、查詢每個連接數的sql_text

v$session表裡存在的連接不是一直都在執行操作,如果sql_hash_value為空或者0,則該連接是空閑的,可以查詢哪些連接非空閑,web3是機器名,就是WebSphereApplicationServer的主機名。

selectt.sql_hash_value,t.*fromv$sessiontwheret.MACHINE='web3'andt.sql_hash_value!=0

這個SQL查詢出來的結果不能看到具體的SQL語句,需要看具體SQL語句的執行下面的方法。

3、查詢每個活動的連接執行什麼sql

selectsid,username,sql_hash_value,b.sql_text

fromv$sessiona,v$sqltextb

wherea.sql_hash_value=b.HASH_VALUEanda.MACHINE='web3'

orderbysid,username,sql_hash_value,b.piece

orderby這句話的作用在於,sql_text每條記錄不是保存一個完整的sql,需要以sql_hash_value為關鍵id,以piece排序,如圖

Username是執行SQL的資料庫用戶名,一個sql_hash_value下的SQL_TEXT組合成一個完整的SQL語句。這樣就可以看到一個連接執行了哪些SQL。

4、.從V$SQLAREA中查詢最佔用資源的查詢

selectb.usernameusername,a.disk_readsreads,a.executionsexec,

a.disk_reads/decode(a.executions,0,1,a.executions)rds_exec_ratio,

a.sql_textStatement

fromv$sqlareaa,dba_usersb

wherea.parsing_user_id=b.user_id

anda.disk_reads>100000

orderbya.disk_readsdesc;

用buffer_gets列來替換disk_reads列可以得到佔用最多內存的sql語句的相關信息。

V$SQL是內存共享SQL區域中已經解析的SQL語句。

該表在SQL性能查看操作中用的比較頻繁的一張表,關於這個表的詳細信息大家可以去http://apps.hi..com/share/detail/299920#上學習,介紹得比較詳細。我這里主要就將該表的常用幾個操作簡單介紹一下:

1、列出使用頻率最高的5個查詢:

selectsql_text,executions

from(selectsql_text,executions,

rank()over

(orderbyexecutionsdesc)exec_rank

fromv$sql)

whereexec_rank<=5;

該查詢結果列出的是執行最頻繁的5個SQL語句。對於這種實用非常頻繁的SQL語句,我們需要對其進行持續的優化以達到最佳執行性能。

2、找出需要大量緩沖讀取(邏輯讀)操作的查詢:

selectbuffer_gets,sql_text

from(selectsql_text,buffer_gets,

dense_rank()over

(orderbybuffer_getsdesc)buffer_gets_rank

fromv$sql)

wherebuffer_gets_rank<=5;

這種需要大量緩沖讀取(邏輯讀)操作的SQL基本是大數據量且邏輯復雜的查詢中會遇到,對於這樣的大數據量查詢SQL語句更加需要持續的關注,並進行優化。

3、持續跟蹤有性能影響的SQL。

SELECT*FROM(

SELECTPARSING_USER_ID,EXECUTIONS,SORTS,

COMMAND_TYPE,DISK_READS,sql_textFROMv$sqlarea

ORDERBYdisk_readsDESC

)

WHEREROWNUM<10

這個語句在SQL性能查看中用的比較多,可以明顯的看出哪些SQL會影響到資料庫性能。

本文主要介紹了使用SQL查詢方式查看oracle資料庫SQL性能的部分常用方法。此外還有許多工具也能實現SQL性能監控,大家可以在網上搜索相關知識進行學習。


轉載僅供參考,版權屬於原作者

⑷ 如何查看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
目錄的佔用空間就可以了,
呵呵,希望能有幫助,^_^

⑸ 如何查看mysql資料庫連接數和內存佔用

命令: show processlist;
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己佔用的連接。

show processlist;只列出前100條,如果想全列出請使用show full processlist;
mysql> show
processlist;
命令: show status;
命令:show status like '%下面變數%';

Aborted_clients 由於客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。
Aborted_connects
嘗試已經失敗的MySQL伺服器的連接的次數。
Connections 試圖連接MySQL伺服器的次數。
Created_tmp_tables
當執行語句時,已經被創造了的隱含臨時表的數量。
Delayed_insert_threads 正在使用的延遲插入處理器線程的數量。

Delayed_writes 用INSERT DELAYED寫入的行數。
Delayed_errors 用INSERT
DELAYED寫入的發生某些錯誤(可能重復鍵值)的行數。
Flush_commands 執行FLUSH命令的次數。
Handler_delete
請求從一張表中刪除行的次數。
Handler_read_first 請求讀入表中第一行的次數。
Handler_read_key
請求數字基於鍵讀行。
Handler_read_next 請求讀入基於一個鍵的一行的次數。
Handler_read_rnd
請求讀入基於一個固定位置的一行的次數。
Handler_update 請求更新表中一行的次數。
Handler_write
請求向表中插入一行的次數。
Key_blocks_used 用於關鍵字緩存的塊的數量。
Key_read_requests
請求從緩存讀入一個鍵值的次數。
Key_reads 從磁碟物理讀入一個鍵值的次數。
Key_write_requests
請求將一個關鍵字塊寫入緩存次數。
Key_writes 將一個鍵值塊物理寫入磁碟的次數。
Max_used_connections
同時使用的連接的最大數目。
Not_flushed_key_blocks 在鍵緩存中已經改變但是還沒被清空到磁碟上的鍵塊。

Not_flushed_delayed_rows 在INSERT DELAY隊列中等待寫入的行的數量。
Open_tables 打開表的數量。

Open_files 打開文件的數量。
Open_streams 打開流的數量(主要用於日誌記載)
Opened_tables
已經打開的表的數量。
Questions 發往伺服器的查詢的數量。
Slow_queries
要花超過long_query_time時間的查詢數量。
Threads_connected 當前打開的連接的數量。

Threads_running 不在睡眠的線程數量。
Uptime 伺服器工作了多少秒

⑹ 怎麼查看mysql資料庫使用量

資料庫存儲最終也保存到文件裡面。
mysql安裝目錄下面有一個my.ini文件,在這個文件裡面搜索datadir
這行,其中datadir指向一個目錄,這個目錄是mysql資料庫文件的存貯路徑,然後你可以查看使用量了。

⑺ 如何查詢資料庫當前佔用空間的大小

查詢出當前用戶的表所佔用的空間大小,並按大小進行降序排列: Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name order by Sum(bytes)/1024/1024 desc查詢出系統表空間的大小

⑻ 怎麼察看Oracle 資料庫表空間的使用情況

查看的方法和詳細的操作步驟如下:

1、首先,因為oracle在Linux系統下運行,所以必須連接到Linux系統,如下圖所示,然後進入下一步。

⑼ 如何查看資料庫內存使用情況

linux有個工具叫top,你用root運行試試如果沒有的話,可能需要安裝