1、查看當前用戶使用的表空間情況,使用命令select * from user_users即可,其中username標識用戶名,default_tablespace表示默認的表空間。
站在用戶的角度思考問題,與客戶深入溝通,找到陵水黎族網(wǎng)站設計與陵水黎族網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋陵水黎族地區(qū)。
2、查看oracle下面所有的表空間,使用命令select * from Dba_Tablespaces即可,呈現(xiàn)的信息包括表空間名稱以及表空間的大小等。
3、表空間是非常重要的資源,如果我們想查看表空間的使用情況,比如表空間利用率等指標,首先我們查詢的用戶必須有dba權限,使用如下的命令查詢即可。
4、查看表空間物理文件的名稱、位置及大小信息,表空間文件通常以dbf的后綴方式存儲。
5、有些查詢表空間的語句需要執(zhí)行用戶需要高的權限,如何查看當前用戶的角色呢?使用命令select * from user_role_privs即可。
6、在查詢到表空間的信息之后,我們有時需要刪除沒用的表空間,使用命令drop tablespace xxx including contents and datafiles;即可。
甲骨文股份有限公司(Oracle)是全球大型數(shù)據(jù)庫軟件公司,總部位于美國加州紅木城的紅木岸。在2008年,甲骨文股份有限公司是繼Microsoft及IBM后,全球收入第三多的軟件公司。Oracle數(shù)據(jù)庫產(chǎn)品為財富排行榜上的前1000家公司所采用,許多大型網(wǎng)站也選用了Oracle系統(tǒng)。甲骨文股份有限公司于1989年正式進入中國,在北京、上海、廣州和成都均設立了分支機構。
2016年1月,甲骨文表示會收購網(wǎng)站數(shù)據(jù)追蹤服務商AddThis。2016年2月,甲骨文收購了云計算創(chuàng)業(yè)公司Ravello Systems。2017年6月7日發(fā)布的2017年美國《財富》500強,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具價值全球品牌100強》公布,甲骨文公司排名第46位。
作為一個開發(fā)/測試人員,或多或少都得和數(shù)據(jù)庫打交道,而對數(shù)據(jù)庫的操作歸根到底都是SQL語句,所有操作到最后都是操作數(shù)據(jù),那么對sql性能的掌控又成了我們工作中一件非常重要的工作。下面簡單介紹下一些查看oracle性能的一些實用方法:
1、查詢每臺機器的連接數(shù)
select?t.MACHINE,count(*)?from?v$session?t?group?by?t.MACHINE
這里所說的每臺機器是指每個連接oracle數(shù)據(jù)庫的服務器,每個服務器都有配置連接數(shù)據(jù)庫的連接數(shù),以websphere為例,在數(shù)據(jù)源中,每個數(shù)據(jù)源都有配置其最大/最小連接數(shù)。
執(zhí)行SQL后,可以看到每個服務器連接oracle數(shù)據(jù)庫的連接數(shù),若某個服務器的連接數(shù)非常大,或者已經(jīng)達到其最大連接數(shù),那么這臺服務器上的應用可能有問題導致其連接不能正常釋放。
2、查詢每個連接數(shù)的sql_text
v$session表里存在的連接不是一直都在執(zhí)行操作,如果sql_hash_value為空或者0,則該連接是空閑的,可以查詢哪些連接非空閑,?web3?是機器名,就是WebSphere?Application?Server?的主機名。
select?t.sql_hash_value,t.*??from?v$session?t?where?t.MACHINE='web3'?and?t.sql_hash_value!=0
這個SQL查詢出來的結(jié)果不能看到具體的SQL語句,需要看具體SQL語句的執(zhí)行下面的方法。
3、查詢每個活動的連接執(zhí)行什么sql
select?sid,username,sql_hash_value,b.sql_text
from?v$session?a,v$sqltext?b
where?a.sql_hash_value?=?b.HASH_VALUE?and?a.MACHINE='web3'
order?by?sid,username,sql_hash_value,b.piece
order?by這句話的作用在于,sql_text每條記錄不是保存一個完整的sql,需要以sql_hash_value為關鍵id,以piece排序,如圖
Username是執(zhí)行SQL的數(shù)據(jù)庫用戶名,一個sql_hash_value下的SQL_TEXT組合成一個完整的SQL語句。這樣就可以看到一個連接執(zhí)行了哪些SQL。
4、.從V$SQLAREA中查詢最占用資源的查詢
select?b.username?username,a.disk_reads?reads,?a.executions?exec,
a.disk_reads/decode(a.executions,0,1,a.executions)?rds_exec_ratio,
a.sql_text?Statement
from??v$sqlarea?a,dba_users?b
where?a.parsing_user_id=b.user_id
and?a.disk_reads??100000
order?by?a.disk_reads?desc;
用buffer_gets列來替換disk_reads列可以得到占用最多內(nèi)存的sql語句的相關信息。
V$SQL是內(nèi)存共享SQL區(qū)域中已經(jīng)解析的SQL語句。
該表在SQL性能查看操作中用的比較頻繁的一張表,關于這個表的詳細信息大家可以去?上學習,介紹得比較詳細。我這里主要就將該表的常用幾個操作簡單介紹一下:
1、列出使用頻率最高的5個查詢:
select?sql_text,executions
from?(select?sql_text,executions,
rank()?over
(order?by?executions?desc)?exec_rank
from?v$sql)
where?exec_rank?=5;
該查詢結(jié)果列出的是執(zhí)行最頻繁的5個SQL語句。對于這種實用非常頻繁的SQL語句,我們需要對其進行持續(xù)的優(yōu)化以達到最佳執(zhí)行性能。
2、找出需要大量緩沖讀?。ㄟ壿嬜x)操作的查詢:
select?buffer_gets,sql_text
from?(select?sql_text,buffer_gets,
dense_rank()?over
(order?by?buffer_gets?desc)?buffer_gets_rank
from?v$sql)
where?buffer_gets_rank=5;
這種需要大量緩沖讀?。ㄟ壿嬜x)操作的SQL基本是大數(shù)據(jù)量且邏輯復雜的查詢中會遇到,對于這樣的大數(shù)據(jù)量查詢SQL語句更加需要持續(xù)的關注,并進行優(yōu)化。
3、持續(xù)跟蹤有性能影響的SQL。
SELECT?*?FROM?(
SELECT?PARSING_USER_ID,EXECUTIONS,SORTS,
COMMAND_TYPE,DISK_READS,sql_text?FROM?v$sqlarea
ORDER?BY?disk_reads?DESC
)
WHERE?ROWNUM10
這個語句在SQL性能查看中用的比較多,可以明顯的看出哪些SQL會影響到數(shù)據(jù)庫性能。
本文主要介紹了使用SQL查詢方式查看oracle數(shù)據(jù)庫SQL性能的部分常用方法。此外還有許多工具也能實現(xiàn)SQL性能監(jiān)控,大家可以在網(wǎng)上搜索相關知識進行學習。
轉(zhuǎn)載僅供參考,版權屬于原作者
比如查找前十條性能差的sql.
SELECT * FROM
(
SELECT PARSING_USER_ID
EXECUTIONS,
SORTS,
COMMAND_TYPE,
DISK_READS,
sql_text
FROM v$sqlarea
ORDER BY disk_reads DESC
)
WHERE ROWNUM10 ;
在實際的工作中,數(shù)據(jù)庫管理員(DBA)需要經(jīng)常要定時對數(shù)據(jù)庫的連接情況進行檢查,查看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,假如建立了過多的連接,會消耗許多數(shù)據(jù)庫的資源。與此同時,針對一些“掛死”的連接,可能會需要DBA自行手工進行清理。
下面的SQL語句列出當前數(shù)據(jù)庫建立的會話情況:
select sid,serial#,username,program,machine,status
from v$session;
輸出的結(jié)果:
SID SERIAL# USERNAME PROGRAM MACHINE STATUS
---- ------- ---------- ----------- --------------- --------
1 1 ORACLE.EXE WORK3 ACTIVE
2 1 ORACLE.EXE WORK3 ACTIVE
3 1 ORACLE.EXE WORK3 ACTIVE
4 1 ORACLE.EXE WORK3 ACTIVE
5 3 ORACLE.EXE WORK3 ACTIVE
6 1 ORACLE.EXE WORK3 ACTIVE
7 1 ORACLE.EXE WORK3 ACTIVE
8 27 SYS SQLPLUS.EXE WORKGROUP\WORK3 ACTIVE
11 5 DBSNMP dbsnmp.exe WORKGROUP\WORK3 INACTIVE
其中SID 會話(session)的ID號;
SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話;
USERNAME 建立該會話的用戶名;
STATUS 當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務,INACTIVE表示當前會話沒有執(zhí)行任何操作;
假如要手工斷開某個會話,則執(zhí)行:
alter system kill session 'SID,SERIAL#';注意:在上面的示例中,SID為1到7(USERNAME列為空)的會話,它是Oracle數(shù)據(jù)庫的后臺進程,請大家不要對這些會話進行任何操作。
查詢ORACLE數(shù)據(jù)庫名:SQL select name from v$database。\x0d\x0a查看實例名:SQL select instance_name from v$instance。\x0d\x0a數(shù)據(jù)庫是一個單位或是一個應用領域的通用數(shù)據(jù)處理系統(tǒng),它存儲的是屬于企業(yè)和事業(yè)部門、團體和個人的有關數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)是從全局觀點出發(fā)建立的,按一定的數(shù)據(jù)模型進行組織、描述和存儲。其結(jié)構基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對某一應用,而是面向全組織,具有整體的結(jié)構化特征。\x0d\x0a數(shù)據(jù)庫中的數(shù)據(jù)是為眾多用戶所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用數(shù)據(jù)庫中的數(shù)據(jù);多個用戶可以同時共享數(shù)據(jù)庫中的數(shù)據(jù)資源,即不同的用戶可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶對信息內(nèi)容的要求,同時也滿足了各用戶之間信息通信的要求。
1. 先通過top命令查看產(chǎn)用資源較多的spid號
2.查詢當前耗時的會話ID,用戶名,sqlID等:
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('5648612','256523'));
3. 如果上一步sql_id或者 hash_value不為空,則可用v$sqlarea查出當前正在使用的sql
select sql_text
from v$sqltext_with_newlines
where hash_value = hash_value
order by piece;
也可直接使用:
select a.*,b.SQL_TEXT from (
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('23226'))
) a,v$sql b
where a.sql_id? = b.SQL_ID(+)
4.kill占用大資源的session
Alter system kill session 'SID,SERIAL#'
解鎖:
1.查詢哪些對象被鎖:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
2.下面的語句用來殺死一個進程:
alter system kill session '524,1095'; (其中24,111分別是上面查詢出的sid,serial#)
3.再一次查詢目前鎖定的對象,若發(fā)現(xiàn)以上方法不能解除鎖定的表,則用以下方法:
3.1 執(zhí)行下面的語句獲得進程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=524 (524是上面的sid)
新聞標題:如何查看oracle資源,oracle查看庫
本文URL:http://jinyejixie.com/article42/dseciec.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、網(wǎng)頁設計公司、網(wǎng)站設計、靜態(tài)網(wǎng)站、微信公眾號、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)