Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Похоже, что оптимизатор при построении плана нивелирует огрехи синтаксиса. Но я очкую, есличестно Потыкайте мордой где неправ... Разгребал старый говнокод, который успешно (?) пашет уже наверное год на Код: plaintext 1. 2. и воткнулся в непонятки: 1. удачно тестится и выполняется запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 2. но внутри используется (внезапно!) ошибочный подзапрос: Код: sql 1. 2. 3. 4. 5. 6. Код: plaintext 1. , и ущербность подзапроса вот в этой конструкции: Код: sql 1. 2. 3. 4. 5. 6. ибо действительно Код: plaintext 1. ---------------------------- В таблице SCL_PRIC действительно нет поля rez_kolch. Код: sql 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. Это поле есть в scl_artc Код: sql 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. Получается, что оптимизатор (?) понимает что ему надо взять REZ_KOLCH из [dbo].[SCL_ARTC]? Запрос вообще значимо больше. Непонятно откуда берётся поле в самом "глубоком" подзапросе. Связанный подзапрос? В плане ни чего не смог увидеть. Попробовал с опубликованной структурой сделать на 2016 на tempdb - поведение запроса и подзапросов аналогично. -------------------------- No ROM Basic... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:02 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
Кто не пишет алиасы, должен страдать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:04 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_, алиасы надо писать всегда, тогда не будет таких вопросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:04 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
поясните.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:38 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_поясните.... медитируй Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. худшая практика в подзапросав явно не прописывать алиасы... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:44 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
матчасть судя по всему сие авторThe general rule is that column names in a statement are implicitly qualified by the table referenced in the FROM clause at the same level. If a column does not exist in the table referenced in the FROM clause of a subquery, it is implicitly qualified by the table referenced in the FROM clause of the outer query. https://docs.microsoft.com/en-us/sql/relational-databases/performance/subqueries?view=sql-server-2017#qualifying ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 16:23 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
TaPaKSIMPLicity_поясните.... медитируй Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. худшая практика в подзапросав явно не прописывать алиасы... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Умопомрачительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 18:11 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_, всё строго по стандарту. Не писать алиасы - небезопасно, и может вызвать катастрофу на ровном месте. Например, у вас не было алиаса, и всё было хорошо. А потом в соседней таблице появилось поле с тем же наименованием, и запрос перестал работать. После 10 лет безупречной работы, в дебрях хранимой процедуры, о существовании которой все позабыли, и система стала раком. Или еще хуже = запрос стал работать неправильно, как раз классический вариант говна Вы и продемонстрировали. Раньше был классный плагин sqlcodeguard, который как раз искал такого рода ошибки в хранимках, а также "повисшие" зависимости. Сейчас его купила https://www.red-gate.com/products/sql-development/sql-code-guard/ И это совсем не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2019, 14:10 |
|
||
|
Где прочитать про то, как оптимизатор "помогает" (см. внутри)
|
|||
|---|---|---|---|
|
#18+
К сведению принял. Теперь почти везде пишу псевдонимы. Меня шокировало, что банальный подзапрос превратился в связанный. Раньше руководствовался замечание Ицика Бен-Гана типа, псевдонимы не обязательны, но если сомневаетесь писать псевдоним или нет,- пишите,- дополнительные накладные расходы копеечные, а нервы сэкономит. Но вот в подзапросах давно их не писал,- вроде как плоская таблица,- всё однозначно. Ан нет. Обжёгся. Хорошо хоть что не сильно. Ну, теперь буду писать правильнее. Всем спасибо за комментарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2019, 03:25 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=109&tid=1688094]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 368ms |

| 0 / 0 |
