从客户端到SQL语句的跟踪
来源:互联网 发布:maxdos网络克隆服务端 编辑:程序博客网 时间:2024/06/01 09:01
From Client To SQL从客户端到SQL语句的跟踪
讲解如何从客户端一步一步地跟踪到后台执行的SQL语句,对于性能调优的人有点帮助
应用服务器与数据库服务器之间的沟通,大多数都是SQL语句。
现在讨论应用服务器到数据库服务器之间的通讯。
应用服务器发来的DML语句,会在数据库产生transaction。
如果某个用户发现自己的事务特别慢,怎么解决呢?
事物有ACID四个特性。
原子性,一致性,隔离性,持久性。
一致性:a transaction takes the database from oneconsistent state to the next
客户端连接上来
sqlplushr/hr@oracle9ivm
做一些DML语句
服务器
Desc v$transaction
Select addr fromv$transaction
就能看到现在有哪些事务在进行。
从进程号,到端口号,到哪个事务,到哪个SQL语句,顺藤摸瓜地找出来。
用哪些工具呢?
Netstat,ifconfig,ps –ef 命令与如下4个视图
V$session:当前有多少个用户连接到数据库服务器上
V$transaction
V$process
V$SQL:当前正在运行的一些SQL的情况
就能从客户端一步一步跟踪到后台。
Selectsid,username,status from v$session;
空的username是ORACLE内部进程连上来的会话,不用操心。我们关心的是有username的部分。
在客户端WINDOWS,我们舒服ipconfig,可以看出去的本机IP地址是哪个, 这里是192.168.0.1
Netstat –anp |more
Listen是代表还在侦听,而establish就是已经建立连接。
如图,local address是192.168.0.88:1521,foreign address是192.168.0.1,而且后面是establish就证明已经建立了连接
Ps –ef|grep 3797,就抓到了负责与远端机器连接的专用服务器进程。
此时在WINDOWS下 netstat –b也可以查看相关信息。可以看到客户端的进程ID与进程名,继而可以在任务管理器中查看信息。
经过如上步骤,客户端到服务器,是哪些端口,哪些进程在进行连接,都知道了。
从netstat可以找到SPID,进而找v$session,然后是v$transaction,然后是v$SQL。几个表的某些列是相关的。
留意592BAE00
从后往前推也可以,从前往后也可以,只要知道这个联络图就可以了。
这样如果以后客户抱怨某个transaction比较慢的话,我们就可以利用这个关系图,最后找到该SQL语句,就可以告诉客户,你看,你慢的就是这条SQL语句,然后再进一步对这条SQL语句进行分析。
- 从客户端到SQL语句的跟踪
- 从客户端到SQL跟踪
- 从客户端 跟踪SQL到oracle。。
- 会话的属性以及组建级别和客户端级别的SQL语句跟踪
- SQL: 跟踪SQL语句的执行情况
- 图解oracle 之从客户端到服务端的sql追击
- 图解oracle 之从客户端到服务端的sql追击
- 如何跟踪mysql执行的sql语句
- 如何进行oracle10g的sql语句跟踪
- 如何跟踪mysql执行的sql语句
- 10046事件跟踪其他用户的sql语句
- 跟踪监控MYSQL执行的sql语句
- mysql如何跟踪执行的sql语句
- 跟踪监控MYSQL执行的sql语句
- mysql如何跟踪执行的sql语句
- Oracle数据库sql语句的跟踪
- 如何跟踪mysql执行的sql语句
- 跟踪监控MYSQL执行的sql语句
- 苹果明年将大力发展零售业务及云服务
- 加载提示
- word如何快速替换网页回车
- 修改AfxMessageBox对话框标题字符串
- service manager in binder mechanism
- 从客户端到SQL语句的跟踪
- 关于JS中新增meta标签
- Android的Handler
- Android学习笔记2_Toast和ProgressDialog
- 窗口透明和PNG图片区域透明按钮使用方法
- Memcached安装以及PHP的调用
- 微软将更多的自家应用迁入Azure
- 自己动手写web服务器(上),深入底层了解ASP.NET浏览器与服务器通信原理
- 自己动手写web服务器(下),深入底层了解ASP.NET浏览器与服务器通信原理