如何查看Oracle数据库的SID

Windows: 1 . Win+R 打开运行,regedit 打开注册表编辑器。
2 . 路径:HKEY_LOCAL_MACHINESOFTWAREORACLE,找到 KEY_OraDb1 0g_home1 3 . ORACLE_SID 的值就是 SID,比如 orcl。

Linux/Unix: 1 . root 用户登录,切换到 oracle 用户:su-oracle。
2 . 方法1 :echo $ORACLE_SID,输出结果即为 SID。
3 . 方法2 :sqlplus/nolog,conn username/password,SELECT instance_name FROM v$instance;,instance_name 是 SID。

客户端: 1 . 使用 NavicatPremium 连接 Oracle。
2 . 新建查询,SELECT instance_name FROM v$instance;。
3 . 执行,instance_name 就是 SID。

注意:
ORACLE_SID 大写。

权限要正确,注册表管理员,Linux oracle 用户。

环境变量或注册表找不到,用 sqlplus 或客户端。

oracle查看进程sql

说实话,在Oracle里查SQL进程,V$视图这套组合拳确实挺管用。
我以前调优的时候,经常把这几个视图玩得转。
下面我给你唠唠我自己的操作心得,可能有点跑偏,但都是实打实的踩坑经验。

1 . 基础方法:V$SQL这玩意儿就像个监控摄像头,对着当前执行的SQL拍个照。
记得有一回深夜,系统突然CPU爆表,我连上数据库就干了个: sql SELECT sql_id, sql_text FROM v$SQL WHERE executions > 1 000 ORDER BY executions DESC;
这一查吓我一跳,发现有个报表查询跑了上千次。
其实这招挺简单,但关键是要知道SQL_ID是啥玩意儿——这玩意儿就像身份证号,以后查这个SQL的各种情况都得靠它。

2 . 进阶方法:光看V$SQL还不够,得把其他视图也串起来。
我最爱的是V$SESSION_LONGOPS,这玩意儿能让你看到哪个会话在干啥坏事。
记得有一次查到一个建索引跑了一下午,直接在报表时间点给系统拖垮了。
用这视图的时候要注意,time_remaining大于0的都得盯紧了,但别把它当绝对时间,有时候系统会自动算错。

3 . 实用技巧:V$SQL的sql_text经常被截断,这时候得用DBMS_METADATA。
我有个习惯,就是把常用的完整SQL文本都存到自定义视图里。
比如: sql SELECT piece, sql_text FROM v$sqltext WHERE sql_id = 'your_sql_id' ORDER BY piece;
这招特别适合那些长SQL,比如某个复杂的临时表关联。
还有个冷知识,V$ACTIVE_SESSION_HISTORY虽然数据好看,但别高兴太早——我上次用的时候,发现AWR日志里居然有个SQL跑了三年,吓死我了。

4 . 权限这块儿要注意,我之前踩过坑。
有个新来的DBA连不上V$SQL,后来查了半天才发现是角色权限没给对。
直接给个SELECT_CATALOG_ROLE角色比单独给每个视图权限省事多了,但得跟安全部门商量——你知道IT部门跟安全部门干仗是啥场面。

最有意思的是,这些方法不是孤立存在的。
我有个调优模板,就是把这些视图的关联操作都做成动态SQL,比如: sql BEGIN FOR rec IN ( SELECT s.sid, s.username, q.sql_id, q.sql_text FROM v$session s JOIN v$SQL q ON s.sql_id = q.sql_id WHERE s.status = 'ACTIVE' ) LOOP DBMS_OUTPUT.PUT_LINE('Session ' || rec.sid || ' [' || rec.username || '] running SQL ' || rec.sql_id); -
省略了完整SQL提取逻辑 END LOOP; END;
用这个脚本,我能在几分钟内把整个系统的活跃SQL都扒个底朝天。

不过要说踩坑,最惨的是用V$SESSION_LONGOPS时把参数设得太死。
有个报表SQL扫描了2 00G数据,结果系统因为buffer busy waits直接跪了——当时我就想,这监控要是能动态调整就好了。
后来改用AWR report抓取,才没再出问题。

说实话,Oracle这套监控体系挺硬核,但用熟了确实能省不少事。
我建议新手先从V$SQL练起,等玩明白了再去看那些更复杂的视图。
记住,有时候最简单的V$SQL可能就藏着最大的性能坑。