|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Добрый день. На сервере 11G установлен был параметер CURSOR_SHARING = FORCE поменяли его на EXACT show paremeter cursor_sharing NAME TYPE VALUE -------------- ------ ----- cursor_sharing string EXACT Спустя сутки смотрю на планы запросов и там полно переменных типа :"SYS_B_0". Получается что cursor_sharing не отключился. Как такое может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 12:01 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev Получается что cursor_sharing не отключился. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2021, 15:10 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Есть вот такой запрос. Так он выглядит V$SQL и с параметром CURSOR_SHARING = FORCE и после того как параметр поменяли на CURSOR_SHARING = EXACT. Пробовал PURGE для этого запроса. exec DBMS_SHARED_POOL.PURGE ('0700011DBF132158, 1237695408', 'C'); Но переменные вида :"SYS_B_10" не меняются. Проблема конечно не в переменных :"SYS_B_10". А в плане запроса, который с ними неэффективен. Индекс по функции не цепляется. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 09:59 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev Так он выглядит V$SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 12:41 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Elic, select last_active_time from v$SQL where sql_id='d5ysm8d4ggfxh' '19.01.2021 15:05:34' ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 13:06 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
может на уровне сессии которая его выполняла стоял ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 13:39 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Сам запрос выполняется минимум раз в минуту на сервере. Есть сессии которые выполняются с момента старта БД . Но они не связаны с этим запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 14:08 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev Есть вот такой запрос. Так он выглядит V$SQL и с параметром CURSOR_SHARING = FORCE и после того как параметр поменяли на CURSOR_SHARING = EXACT. Поменяли где и как? SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 14:54 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev, Код: plsql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 15:15 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
SY, Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 15:21 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
xtender, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 15:23 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev Код: plsql 1. 2.
cursor_sharing=exact стоит у обоих чайлдов, так что надо копать дальше. Возможно там аутлайн,профиль или бейслайн прибит. Покажи Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 16:47 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
xtender, оба запроса возвращают по одной записи select c.* from v$sql c where c.sql_id='&sql_id'; "SQL_TEXT""SQL_FULLTEXT""SQL_ID""SHARABLE_MEM""PERSISTENT_MEM""RUNTIME_MEM""SORTS""LOADED_VERSIONS""OPEN_VERSIONS""USERS_OPENING""FETCHES""EXECUTIONS""PX_SERVERS_EXECUTIONS""END_OF_FETCH_COUNT""USERS_EXECUTING""LOADS""FIRST_LOAD_TIME""INVALIDATIONS""PARSE_CALLS""DISK_READS""DIRECT_WRITES""BUFFER_GETS""APPLICATION_WAIT_TIME""CONCURRENCY_WAIT_TIME""CLUSTER_WAIT_TIME""USER_IO_WAIT_TIME""PLSQL_EXEC_TIME""JAVA_EXEC_TIME""ROWS_PROCESSED""COMMAND_TYPE""OPTIMIZER_MODE""OPTIMIZER_COST""OPTIMIZER_ENV""OPTIMIZER_ENV_HASH_VALUE""PARSING_USER_ID""PARSING_SCHEMA_ID""PARSING_SCHEMA_NAME""KEPT_VERSIONS""ADDRESS""TYPE_CHK_HEAP""HASH_VALUE""OLD_HASH_VALUE""PLAN_HASH_VALUE""CHILD_NUMBER""SERVICE""SERVICE_HASH""MODULE""MODULE_HASH""ACTION""ACTION_HASH""SERIALIZABLE_ABORTS""OUTLINE_CATEGORY""CPU_TIME""ELAPSED_TIME""OUTLINE_SID""CHILD_ADDRESS""SQLTYPE""REMOTE""OBJECT_STATUS""LITERAL_HASH_VALUE""LAST_LOAD_TIME""IS_OBSOLETE""IS_BIND_SENSITIVE""IS_BIND_AWARE""IS_SHAREABLE""CHILD_LATCH""SQL_PROFILE""SQL_PATCH""SQL_PLAN_BASELINE""PROGRAM_ID""PROGRAM_LINE#""EXACT_MATCHING_SIGNATURE""FORCE_MATCHING_SIGNATURE""LAST_ACTIVE_TIME""BIND_DATA""TYPECHECK_MEM""IO_CELL_OFFLOAD_ELIGIBLE_BYTES""IO_INTERCONNECT_BYTES""PHYSICAL_READ_REQUESTS""PHYSICAL_READ_BYTES""PHYSICAL_WRITE_REQUESTS""PHYSICAL_WRITE_BYTES""OPTIMIZED_PHY_READ_REQUESTS""LOCKED_TOTAL""PINNED_TOTAL""IO_CELL_UNCOMPRESSED_BYTES""IO_CELL_OFFLOAD_RETURNED_BYTES""select...""select...""d5ysm8d4ggfxh"10157710200849610051116024100500115"2020-01-14/10:14:26"7032846126601495171641040408702474845348300110443"ALL_ROWS"426813E289FB89E426A8004E011000AEF9C3E2CFFA331056414555519521105555551545545558591555449665851D5511058555555155515122555415A0EA0C5551454265455454049081566E001696C6A35545150102541550441615579110A8456E820A504021000020000000000100001000000002002080007D00000000000A40FFFF011010000080830F400000A0FFFF0000000005406E820A504646262040262320030020003020A0A05050A04001200000401F000000A5A0A0A040863E000040060C382000200000F0FF0F00804221030400020040360030229962678585"USER"00700011DBF132158001237695408163878064319862923751"SID"0"sender@app-1 (TNS V1-V3)"-19850667""00""15606596505526320915380700011DBC72E8306"N""VALID"0"2021-01-18/10:20:07""N""N""N""Y"0""""""0073849408304625010873849408304625010819.01.2021 22:20:38BEDA0B20040060071282000CFF0FC0021602C102C0021602C104C002160180F0012000AB08595959594D4D4444C002160180F0012000AB08595959594D4D4444C002160180F0012000AB0448483234C0021602C119C002160180C0021602C119F0012000AB044848323400269075469107215134325426907546910720003622183300 select c.* from v$sql_shared_cursor c where c.sql_id='&sql_id'; "SQL_ID""ADDRESS""CHILD_ADDRESS""CHILD_NUMBER""UNBOUND_CURSOR""SQL_TYPE_MISMATCH""OPTIMIZER_MISMATCH""OUTLINE_MISMATCH""STATS_ROW_MISMATCH""LITERAL_MISMATCH""FORCE_HARD_PARSE""EXPLAIN_PLAN_CURSOR""BUFFERED_DML_MISMATCH""PDML_ENV_MISMATCH""INST_DRTLD_MISMATCH""SLAVE_QC_MISMATCH""TYPECHECK_MISMATCH""AUTH_CHECK_MISMATCH""BIND_MISMATCH""DESCRIBE_MISMATCH""LANGUAGE_MISMATCH""TRANSLATION_MISMATCH""BIND_EQUIV_FAILURE""INSUFF_PRIVS""INSUFF_PRIVS_REM""REMOTE_TRANS_MISMATCH""LOGMINER_SESSION_MISMATCH""INCOMP_LTRL_MISMATCH""OVERLAP_TIME_MISMATCH""EDITION_MISMATCH""MV_QUERY_GEN_MISMATCH""USER_BIND_PEEK_MISMATCH""TYPCHK_DEP_MISMATCH""NO_TRIGGER_MISMATCH""FLASHBACK_CURSOR""ANYDATA_TRANSFORMATION""PDDL_ENV_MISMATCH""TOP_LEVEL_RPI_CURSOR""DIFFERENT_LONG_LENGTH""LOGICAL_STANDBY_APPLY""DIFF_CALL_DURN""BIND_UACS_DIFF""PLSQL_CMP_SWITCHS_DIFF""CURSOR_PARTS_MISMATCH""STB_OBJECT_MISMATCH""CROSSEDITION_TRIGGER_MISMATCH""PQ_SLAVE_MISMATCH""TOP_LEVEL_DDL_MISMATCH""MULTI_PX_MISMATCH""BIND_PEEKED_PQ_MISMATCH""MV_REWRITE_MISMATCH""ROLL_INVALID_MISMATCH""OPTIMIZER_MODE_MISMATCH""PX_MISMATCH""MV_STALEOBJ_MISMATCH""FLASHBACK_TABLE_MISMATCH""LITREP_COMP_MISMATCH""PLSQL_DEBUG""LOAD_OPTIMIZER_STATS""ACL_MISMATCH""FLASHBACK_ARCHIVE_MISMATCH""LOCK_USER_SCHEMA_FAILED""REMOTE_MAPPING_MISMATCH""LOAD_RUNTIME_HEAP_FAILED""HASH_MATCH_FAILED""PURGED_CURSOR""BIND_LENGTH_UPGRADEABLE""USE_FEEDBACK_STATS""REASON""d5ysm8d4ggfxh"0700011DBF1321580700011DBC72E8301"N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""Y""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""N""<ChildNode><ChildNumber>1</ChildNumber><ID>34</ID><reason>Rolling Invalidate Window Exceeded(2)</reason><size>0x0</size><details>already_processed</details></ChildNode><ChildNode><ChildNumber>1</ChildNumber><ID>34</ID><reason>Rolling Invalidate Window Exceeded(2)</reason><size>0x0</size><details>already_processed</details></ChildNode><ChildNode><ChildNumber>1</ChildNumber><ID>34</ID><reason>Rolling Invalidate Window Exceeded(2)</reason><size>0x0</size><details>already_processed</details></ChildNode> " ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 20:30 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev, А точная версия оракла какая? хотя в optmizer_features_enable вижу стоит 11.2.0.4, но на всякий случай лучше скажи точную версию. Вообще был баг "Bug 9362218 : LITERALS REPLACED BY BINDS WHEN CURSOR_SHARING=EXACT", но его пофиксили еще в 11.2.0.2 (Server Patch Set): The fix for 9362218 is first included in 12.1.0.1 (Base Release) 11.2.0.2 (Server Patch Set) 11.2.0.1 Patch 4 on Windows Platforms 10.2.0.5 Patch 3 on Windows Platforms 10.2.0.4 Patch 37 on Windows Platforms может он у вас через _fix_control отключен? Что выводит этот запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
ну и, конечно, план бы запроса с format=>'ADVANCED' ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 02:52 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
"BUGNO""VALUE""SQL_FEATURE""DESCRIPTION""OPTIMIZER_FEATURE_ENABLE""EVENT""IS_DEFAULT"43708401"QKSFM_ACCESS_PATH_4370840""Extend 3628118 to cover peeked binds from cursor_sharing=similar""11.1.0.6"01101177601"QKSFM_CURSOR_SHARING_10117760""cardinality feedback should account for bloom filters""11.2.0.3"01101820513"QKSFM_CURSOR_SHARING_10182051""Limit on predicates in bind equiv context (raised to power of 2)"""01116574681"QKSFM_CURSOR_SHARING_11657468""disable ACS checks after many executions""11.2.0.3"01124320891"QKSFM_CURSOR_SHARING_12432089""share PQ cursors for dbms_stats queries""8.0.0"01125574011"QKSFM_CURSOR_SHARING_12557401""disable cardinality feedback for union-all JPPD""11.2.0.4"01128126971"QKSFM_CURSOR_SHARING_12812697""Disable Cardinality Feedback for Or-Expansion""11.2.0.4"01133822801"QKSFM_CURSOR_SHARING_13382280""CFB uses min cardinality under stopkey optimization""11.2.0.4"01134544091"QKSFM_CURSOR_SHARING_13454409""mark fro inside view for right of NLJ""11.2.0.4"01139055990"QKSFM_CURSOR_SHARING_13905599""Do not share cursors with GTT and dynamic sampling across sessio"""01141477621"QKSFM_CURSOR_SHARING_14147762""disable cardinality feedback for union-all inside PJP view""11.2.0.4"01141762471"QKSFM_CURSOR_SHARING_14176247""ECS merges multiple overlapping selectivity ranges""11.2.0.4"0166990591"QKSFM_CURSOR_SHARING_6699059""enable cardinality feedback-based cursor sharing""11.2.0.1"0169176331"QKSFM_CURSOR_SHARING_6917633""merge selectivity range for single predicate""11.1.0.7"0172842691"QKSFM_CURSOR_SHARING_7284269""extended cursor sharing for like predicates""11.2.0.2"0176405971"QKSFM_CURSOR_SHARING_7640597""defer cursor invalidation during the truncate operation""8.0.0"0183562531"QKSFM_CURSOR_SHARING_8356253""Cardinality feedback with binds group by indexes""11.2.0.1"0184913991"QKSFM_CURSOR_SHARING_8491399""improve selectivity estimation for ACS""11.2.0.1"0193429791"QKSFM_CURSOR_SHARING_9342979""disable cardinality feedback for old JPPD""11.2.0.2"0194654251"QKSFM_CURSOR_SHARING_9465425""correct hint for index join from cardinality feedback""11.2.0.2"01 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 07:42 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev, xtender ну и, конечно, план бы запроса с format=>'ADVANCED' ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 11:34 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
xtender, Не знаю что я делаю не так. Но у меня пусто. select * from table(dbms_xplan.display_cursor(sql_id=>'d5ysm8d4ggfxh',format=>'advanced')); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ SQL_ID: d5ysm8d4ggfxh, child number: 0 cannot be found ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 13:35 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
v$sql.child_number ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2021, 13:45 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
PuM256, Он исчез! Ура. Дело было в сессии. Приложение работало долго и оно все это время держало сессию. Я думал что оно периодически создает новую сессию. сам не мог перегрузить его. И сервер тоже. Это все высоко нагруженное. Спасибо всем кто помогал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 07:31 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
igaraev Он исчез! Ура. Дело было в сессии. Приложение работало долго и оно все это время держало сессию. Я думал что оно периодически создает новую сессию. сам не мог перегрузить его. И сервер тоже. Темнишь: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98.
Как только "alter system set cursor_sharing=exact scope=both;" так cursor_sharing меняется у всех текущих сессий и посему меняется optimizer_environment и тот-же SQL снова перепарсится и получим новый child cursor. Разве что ты не сделал scope=both. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 15:10 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
SY Как только "alter system set cursor_sharing=exact scope=both;" так cursor_sharing меняется у всех текущих сессий и посему меняется optimizer_environment и тот-же SQL снова перепарсится и получим новый child cursor. Разве что ты не сделал scope=both. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 17:32 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Elic А если курсор парсится один раз, а потом только exec-ается, как собственно лоция и рекомендует? Bсе курсоры инвалидируются как только optimizer environment меняется, SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 17:41 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
SY Bсе курсоры инвалидируются как только optimizer environment меняется, Хотя тут ситуация другая. CURSOR_SHARING проверяется до фактического парсинга. Если EXACT то парсим "as is". В противном случае SQL переписывается под bind и только потом парсится: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 17:55 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
Elic А если курсор парсится один раз, а потом только exec-ается, как собственно лоция и рекомендует? А, т.е. что-то типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Тогда да - изменение cursor_sharing на такой код не повлияет. Но я сильно сомневаюсь кто-то, особенно с connection pooling, рпишет такой код - разве-что какой-то монитор. SY.р ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 18:56 |
|
Переменные :"SYS_B_0"
|
|||
---|---|---|---|
#18+
SY Но я сильно сомневаюсь кто-то, особенно с connection pooling, пишет такой код - разве-что какой-то монитор. Хотя, с другой стороны, такое продвинутое использование курсоров не вяжется с неиспользованием bind-ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2021, 19:08 |
|
|
start [/forum/topic.php?fid=52&fpage=27&tid=1880503]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
100ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 182ms |
0 / 0 |