返回数说广场
0
在Oracle数据库中,SQL语句的解析主要涉及到两种方式:硬解析(Hard Parse)和软解析(Soft Parse)。
硬解析(Hard Parse):
当一个SQL语句首次被提交到Oracle数据库时,会进行硬解析。在这个过程中,Oracle会检查SQL语句的语法,并生成一个执行计划。这个执行计划会存储在共享池(Shared Pool)中的库缓存(Library Cache)中。硬解析相对比较耗时,因为它需要检查SQL语句的语法和语义,并生成执行计划。
软解析(Soft Parse):
当相同的SQL语句再次被提交到数据库时,Oracle会首先检查这个SQL语句是否已经存在于库缓存中。如果存在,Oracle会直接使用已经存储的执行计划,而不会重新进行语法和语义检查。软解析相对较快,因为它只需要查找和复用已经存在的执行计划。
需要注意的是,只有完全相同的SQL语句(包括大小写、空格和换行等细节)才会被视为相同的语句,并复用以前的执行计划。对于不同的SQL语句或者只有细微差别的SQL语句,仍然需要进行硬解析。
另外,还有第三种方式称为"软软解析"(Soft-Soft Parse),也称为不解析(No-Parse)。这种方式是当SQL语句已经存在于库缓存中,但该语句对应的执行计划不在共享池中的执行计划缓存中时所采用的方式。此时,Oracle会直接将该SQL语句与执行计划一起从库缓存中取出并放入执行计划缓存中,而不会进行任何解析操作。
总结来说,Oracle中的SQL解析主要分为硬解析、软解析和软软解析(不解析)三种方式。
1
0 198
分享
评论
热门数说


