计划SQL语句的哈希值是" 0"在V $ SQL中

时间:2016-07-15 11:52:59

标签: sql oracle oracle11g oracle10g database-administration

V $ SQL中有很多SQL,其中0为Plan Hash Value(PHV)。当我为该SQL生成计划时,它通过使用以下命令显示一些PHV,

07-16 11:35:58.140: E/AndroidRuntime(5252): FATAL EXCEPTION: main
07-16 11:35:58.140: E/AndroidRuntime(5252): Process: org.avatarsipphone.sipua, PID: 5252
07-16 11:35:58.140: E/AndroidRuntime(5252): java.lang.RuntimeException: Unable to resume activity {org.avatarsipphone.sipua/org.avatarsipphone.sipua.ui.noticall}: java.lang.IllegalStateException: trying to requery an already closed cursor  android.database.sqlite.SQLiteCursor@520f4d5
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1388)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.os.Looper.loop(Looper.java:148)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.ActivityThread.main(ActivityThread.java:5417)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at java.lang.reflect.Method.invoke(Native Method)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-16 11:35:58.140: E/AndroidRuntime(5252): Caused by: java.lang.IllegalStateException: trying to requery an already closed cursor  android.database.sqlite.SQLiteCursor@520f4d5
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.Activity.performRestart(Activity.java:6296)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.Activity.performResume(Activity.java:6319)
07-16 11:35:58.140: E/AndroidRuntime(5252):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)
07-16 11:35:58.140: E/AndroidRuntime(5252):     ... 8 more

但是在执行时它显示0为PHV。为什么有些SQL在V $ SQL视图中的PHV为0?这是否意味着它正在使用默认计划执行?

1 个答案:

答案 0 :(得分:3)

您的SQL是否使用数据库链接?如果是,那么您将在远程服务器中看到哈希值。此外,如果SQL查询是PL / SQL块,那么您可能会获得计划哈希值0