Всем добрый день, такая проблема:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux IA64: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Когда работает приложение, то при выполнении следующего кода:
UPDATE /*+ INDEX (CARD PK_CARD)*/card
SET ctrlsum = :1,
flags = :2
WHERE code = :3
Cost равен 11,294
и план запроса его трактует как:
<ExplainPlan>
<PlanElement object_ID="0" id="0" operation="UPDATE STATEMENT" optimizer="ALL_ROWS" search_columns="0" cost="11.294">
<PlanElements>
<PlanElement object_ID="1" id="1" operation="UPDATE" object_owner="BESTZVIT" object_name="CARD" search_columns="0">
<PlanElements>
<PlanElement object_ID="1" id="2" operation="TABLE ACCESS" option="BY INDEX ROWID" object_owner="BESTZVIT" object_name="CARD" object_type="TABLE" search_columns="0" cost="11.294" cardinality="1" bytes="167" cpu_cost="2.171.306.808" io_cost="11.103" time="136">
<PlanElements>
<PlanElement object_ID="2" id="3" operation="INDEX" option="FULL SCAN" object_owner="BESTZVIT" object_name="PK_CARD" object_type="INDEX (UNIQUE)" search_columns="0" cost="11.293" cardinality="1" cpu_cost="2.171.297.227" io_cost="11.102" filter_predicates="TO_BINARY_DOUBLE("CODE")=:3" time="136"/>
</PlanElements>
</PlanElement>
</PlanElements>
</PlanElement>
</PlanElements>
</PlanElement>
</ExplainPlan>
Когда же запускаю этот же запрос в обычном редакторе, например Toad, то Cost равен уже 3 и план соответственно следующий:
<ExplainPlan>
<PlanElement object_ID="0" id="0" operation="SELECT STATEMENT" optimizer="ALL_ROWS" cost="3" cardinality="1" bytes="28" cpu_cost="36.017" io_cost="3" time="1">
<PlanElements>
<PlanElement object_ID="1" id="1" operation="TABLE ACCESS" option="BY INDEX ROWID" optimizer="ANALYZED" object_owner="BESTZVIT" object_name="IPACK" object_type="TABLE" object_instance="1" cost="3" cardinality="1" bytes="28" cpu_cost="36.017" io_cost="3" time="1">
<PlanElements>
<PlanElement object_ID="2" id="2" operation="INDEX" option="UNIQUE SCAN" optimizer="ANALYZED" object_owner="BESTZVIT" object_name="IPACK_IDX2" object_type="INDEX (UNIQUE)" search_columns="3" cost="2" cardinality="1" cpu_cost="28.686" io_cost="2" access_predicates=""IPACK"."ORG"=265000007394754 AND "IPACK"."DATPER"=TO_DATE('1999-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND "IPACK"."TYPPER"=0" time="1"/>
</PlanElements>
</PlanElement>
</PlanElements>
</PlanElement>
</ExplainPlan>
В чем ошибка может быть и куда копать??!