我想知道当客户端向服务器发送一个请求后,这个请求所包含的SQL字符串的流程,就是都通过哪些地方到达服务器,越详细越好啊!
希望大家能帮忙解答下!小弟不胜感激!

解决方案 »

  1.   

    http://blog.csdn.net/wh62592855/archive/2009/09/28/4604903.aspx可以参考一下
      

  2.   

    1、用户提交SQL语句至客服端进程。
    2、客户端进程使用TCP/IP等协议将SQL发送到数据库对应的服务进程。
    3、服务器进程将SQL放入SHARED POOL;
    4、在共享池中搜索 SQL 语句的现有副本。
    5、SQL引擎进行语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。
    6、 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。
    7、视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。
    8、表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。
    9、选择优化器,不同的优化器一般产生不同的“执行计划”
    10、选择连接方式, ORACLE 有三种连接方式,对多表连接 ORACLE 可选择适当的连接方式。
    11、选择连接顺序, 对多表连接 ORACLE 选择哪一对表先连接,选择这两表中哪个表做为源数据表。
    12、选择数据的搜索路径,根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。
    13、运行“执行计划”
      

  3.   

    通过哪些地方到达服务器
    你是想问经过哪些网关?
    TRACE IP看看
      

  4.   

    如果为想得到客户机向服务器发送的SQL语句可以从哪里入手!?谢谢了
      

  5.   

    或者是数据库里哪里存储的有执行过的SQL语句
      

  6.   

    不是高手的路过!新手的路过!呵呵!77、roby、树哥、水哥、东升、、、、、你们还不来回答问题!
      

  7.   

    怎么在内存读出SQL语句呀 求救!
      

  8.   

    求求各位高人帮忙啊!
    3楼谢谢你的回答,还有各位的!
    我现在知道为想要的信息中oracle的SGA里,可是为如何找到SGA的地址啊,oracle又是如何每次找到它的,如何确定它的地址,是不是oracle地址+某偏移量