|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookin, Какова логика establishment и establishment_license? Не надо ли создать внешний ключ по establishment_id между ними? Victor Cookinestablishment_id не может быть равен nullПриведи полный DDL всех трех таблиц с их констрейнтами. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:14 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
кит северных морейто есть на самом деле ему нужны все establishment БЕЗ establishment_license, и с адресами - у кого есть. для этого не нужен FOJ между е и el. плюс я сильно подозреваю что во вьюхе на самом деле надо было написать where el. establishment_id is null, и тогда оптимизатор разобрался бы в этом сам.это все гадания... и проще спросить напрямую ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:15 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookin, Victor Cookinestablishment_id не может быть равен null Тьфу ты, конечно же может. То что в базе такого нет, не значит что не может быть висячих лицензий без бизнеса. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:15 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
xtender, Моя ошибка в том, что я создал вьюху, которая показывает не только А) бизнесы без лицензий, но и Б) лицензии без бизнесов. Собственно, каждодневная забота, это чтобы не было А). Б) - это нужно когда чистят базу. А поскольку в establishment_license стоит FK на establishment.establishment_ID, то и в принципе FULL JOIN во вьюхе не нужен, так как случай Б возможен только при отключении FK, что исключено. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:22 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookin, если бы establishment_ID был NOT NULL и был FK, оракл бы сам догадался FOJ заменить на left join ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:24 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Переписал VW_NOLICENSE_VK с FULL JOIN на LEFT JOIN Теперь всё работает одинаково быстро. Странно, Оптимизатор плюёт на FK, получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:25 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor CookinСтранно, Оптимизатор плюёт на FK, получается.он не "плюёт", а делает логично, учитывая, что поле establishment_ID nullable в establishment_license ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:27 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
xtender, Только что проверил establishment_id - и NOT NULL и FK в establishment_license Вот establishment_license_id - только NOT NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:28 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Код: 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. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:32 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor CookinТолько что проверил establishment_id - и NOT NULL и FK в establishment_licenseне верю©. Покажи трассу 10053 для Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:33 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
xtender, У меня нет доступа к файлам трасс. Если подскажете как сделать в без записи в файлы, сделаю. Я - разработчик, не DBA вот план: Plan Hash Value : 975423473 ----------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | Time | ----------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 178273 | 4635098 | 87 | 00:00:01 | | 1 | VIEW | VW_FOJ_0 | 178273 | 4635098 | 87 | 00:00:01 | | * 2 | HASH JOIN FULL OUTER | | 178273 | 1782730 | 87 | 00:00:01 | | 3 | INDEX STORAGE FAST FULL SCAN | PK_ESTABLISHMENT | 28057 | 140285 | 13 | 00:00:01 | | 4 | INDEX STORAGE FAST FULL SCAN | ESTABLISHMENT_LICENSE_IX1 | 177388 | 886940 | 74 | 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ------------------------------------------ * 2 - access("E"."ESTABLISHMENT_ID"="EL"."ESTABLISHMENT_ID") ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:50 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 18:52 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookin Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:20 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
кит северных морей, Ну меня не интересует LICENSE_TYPE_CODE. И я его нигде не запрашиваю. И таблицу LICENSE_TYPE не трогаю. Какое это всё может иметь влияние на план? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:47 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookinкит северных морей, Ну меня не интересует LICENSE_TYPE_CODE. И я его нигде не запрашиваю. И таблицу LICENSE_TYPE не трогаю. Какое это всё может иметь влияние на план? никакого. я невнимательно прочитал ddl. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 19:51 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
кит северных морей, странное всё таки поведение, может из-за того что EXADATA? Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 20:28 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookin, Приведи VW_NOLICENSE_VK для полноты картины. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 20:29 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
Victor Cookinстранное всё таки поведениепроверил только что на нескольких базах 12.1-19.3: действительно, несмотря на то, что у оракла есть трансформация FULL_OUTER_JOIN_TO_OUTER, но она не учитывает внешние ключи. Видимо, не подумали, что разработчик может воткнуть FOJ на таблицах, связанных через FK + not null... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 20:36 |
|
(+) уввеличивает время исполнения, даже когда результат один и тот же. Почему?
|
|||
---|---|---|---|
#18+
SY, 21932966 сейчас я исправил FULL на LEFT и всё заработало, но вроде должно было бы работать и с FULL ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2019, 20:37 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1882275]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 431ms |
0 / 0 |