Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
TaPaKptr128, авторБлаго временной таблицей их заменить можно всегда. дарагуля, давай пример замены в функции? Или как всегда скажешь, что не то имел ввиду? Детка, давай пример, опровергающий мое утверждение, или умолкни ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:13 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128TaPaKptr128, пропущено... дарагуля, давай пример замены в функции? Или как всегда скажешь, что не то имел ввиду? Детка, давай пример, опровергающий мое утверждение, или умолкни ))) рыбка, я ж и говорю что ты опять несёшь чушь, что тут опровергать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:17 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128Явно пропустили. Где тут сказано, что всегда или обязательно ? Да, внутренние объекты SQL сервера, создаваемые при использовании CTE "размещал" и "размещаются" в tempdb. Если CTE, вложенные запросы и т.п. объектов не создают, то и размещать нечего.Опять "создаваемые при использовании CTE" :-) Я вам в очередной раз скажу, что написание или ненаписание волшебного слова CTE совершенно не коррелирует с использованием сервером tempdb. Мы же вроде это уже выяснили? ptr128Во-первых, в оригинале эта фраза звучала, как ptr128Queries that contain SELECT, INSERT, UPDATE, and DELETE statements can use internal objects to store intermediate results for hash joins, hash aggregates, or sorting. Даже слова CTE в ней не было.Вот именно, не было. Мы же обсуждаем ваши "объекты в tempdb, создаваемые запросом CTE", а не что то другое. ptr128alexeyvgТут собрались люди, достаточно хорошо знающие сиквел, почитывающие блоги писателей ядра сиквела, и даже заходят те, кто сами пишет об этом книги, и им режет взгляд такая вольная интерпретация. О господи! А уже подумал, что Вы хоть что-то понимаете в обсуждаемом вопросе. А Вы вдруг, как дите малое решили пиписьками меряться )))Ну, "разбираются, читают, пишут", это не только мерянье, но некий показатель знания контекста. Просто смешно выглядит, мы тут перетираем с 2000 года работу сервера с tempdb в самых разных ситуациях, в разных версиях, чуть ли не раз в неделю (ну хорошо, раз в месяц). Представляете, 17 лет постоянно обсуждаем, аж в зубах скрипят эти объекты в tempdb. Я уже отвечаю на эти темы не сразу, надоело, 10 лет назад бы подхватил топик в течении 5 минут. И тут приходит ptr128, и выдаёт такое :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:19 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
[quot alexeyvg]ptr128И тут приходит ptr128, и выдаёт такое :-) И "мэтры" начинают изъясняться языком школьников-дегенератов... "Дом-2" устроили... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:35 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgПросто смешно выглядит, мы тут перетираем с 2000 года А мне еще смешнее, так как я с удовольствием перешел с IDMS на DB/2 в 1989-ом, а свой первый интерпретатор SQL, естественно упрощенный, написал на C в 1995-ом. ))) Поймите, после того, как Вы начали говорить за всех (в курсе, что за всех говорят только демагоги?): alexeyvgТут всем известно все именно так отказались аргументировать свои утверждения: ptr128приведите доказательство того, что "обычный запрос из одной таблицы [...] без группировок" размещает внутренний объект в tempdb. И без сортировки, пожалуйста ) Выделите, пожалуйста, в нем слово HASH: Где тут сказано, что всегда или обязательно? смысла в продолжении общения просто нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:42 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
Goga-GolaalexeyvgИ тут приходит ptr128, и выдаёт такое :-) И "мэтры" начинают изъясняться языком школьников-дегенератов... "Дом-2" устроили...Все "мэтры" вдруг поменяли язык? Или один-два человека ляпнули? В этом топике хватает и нормального обсуждения. "Дом-2" от кого то невоспитанного не отменяет "И тут приходит ptr128, и выдаёт такое :-)" Ой, ну вот, второй пост ptr128 в этом топике: ptr128Руслан Дамирович Код: sql 1. Для чего в этой задаче CTE? Две временные таблицы неявно Вы создаете - это потеря производительности. А выигрыш в чем?Конечно же, это ещё какой перл, противоречащий всем последующим объяснениям, цитатам и тестам. Всех резануло это высказывание, по сути - "ключевое слово WITH автоматически созадёт временную таблицу на каждое написание". И главное, не факт ошибки (у меня на форуме горы ошибок), а упорное отстаивание явного ляпа. Надо было просто сказать: ой, ошибся, не так понял прочитанную статью, не CTE неявно создаёт временные таблицы, а определённые операторы исполнения в database engine. И всё, сразу видно - человек знает, что мало знает, значит, профессионал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:52 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128Поймите, после того, как Вы начали говорить за всех (в курсе, что за всех говорят только демагоги?): alexeyvgТут всем известно все именно так отказались аргументировать свои утверждения: ptr128приведите доказательство того, что "обычный запрос из одной таблицы [...] без группировок" размещает внутренний объект в tempdb. И без сортировки, пожалуйста ) Выделите, пожалуйста, в нем слово HASH: Где тут сказано, что всегда или обязательно?Ээээ, про слово HASH бездоказательно??? Вот 2 запроса с worktable Код: sql 1. 2. 3. 4. 5. 6. Вот 2 запроса без worktable Код: sql 1. 2. 3. 4. 5. 6. Теперь перечитываем утверждение, которое вы отстаиваете: ptr128Для чего в этой задаче CTE? Две временные таблицы неявно Вы создаете - это потеря производительности. А выигрыш в чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 09:57 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgТеперь перечитываем утверждение, которое вы отстаиваете: ptr128Для чего в этой задаче CTE? Две временные таблицы неявно Вы создаете - это потеря производительности. А выигрыш в чем?Ещё раз, мы обсуждаем именно это ваше утверждение. Придёт какой то начинающий сиквелист, прочитает мнение эксперта ptr128, потом посмотрит на свой код. - Таак, у меня тут 3 слова CTE, значит, создаются 3 (или 6?) временных таблиц в tempdb А это не так, наличие или отсутствие CTE никак не коррелдирует с временными объектами, оно зависит от плана выполнения запроса. Вот это мы тут говорим, и именно подтверждение или опровержение этого мы ищем в предоставленных вами ссылках, и ничто другое, никакие другие условия или признаки создания временных объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:05 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
Жара, мать иё! А задача ТСа так и не решена! Клиенты не платят - бизнес страдает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:13 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128Для чего в этой задаче CTE? Две временные таблицы неявно Вы создаете - это потеря производительности. А выигрыш в чем? Я могу согласиться с тем, что фраза была высказана излишне категорично. К тому же уже доказано было выше, что использование синтаксиса CTE не всегда приводит к созданию временных таблиц. Ну или, как Вы выражаетесь, "не всегда приводит к тому, что определенные операторы исполнения в database engine создают временные таблицы". Был не прав. Привык гонять своих разработчиков кратко. Благо живых примеров такого кода на продуктивных базах клиентов, хоть завались, и продемонстрировать разницу - минута. Надо было сразу писать что-то вроде "Написание запросов при помощи CTE может привести (а при разработке и развитии продукта - точно приведет) к неявному созданию неиндексированных объектов в tempdb, что приведет к потере производительности, по сравнению с использованием временных таблиц с разумными индексами". Или не писать вообще - пусть у конкурентов все работает медленней ) alexeyvg"ключевое слово WITH автоматически созадёт временную таблицу на каждое написание". А вот когда слова оппонетна перефразируют по своему разумению - это называется "демагогия". alexeyvgне CTE неявно создаёт временные таблицы, а определённые операторы исполнения в database engine. Вы видите принципиальную разницу между фразами? "Объекты CTE размещаются в tempdb" "Объекты создаваемые CTE размещаются в tempdb" "Объекты создаваемые при использоании синтаксиса CTE размещаются в tempdb" "Объекты создаваемые операторами database engine при использоании синтаксиса CTE размещаются в tempdb" Лично я не вижу. Поэтому, если бы Вы попросили уточнить мою фразу, так как она Вам непонятна, то сразу же получили бы последний вариант. Вы же предпочли придраться к словам и интерпретировать мою фразу исключительно одним способом, удобным для Вас. Даже не смотря на то, что и Вы и я в курсе, что CTE - не более чем синтаксическая конструкция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:22 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgЭэээ, про слово HASH бездоказательно??? Вот 2 запроса с worktable Убедительная просьба прекратить нагло врать! Скриншот сюда. Чтобы было видно, что это я написал, а не отковотил то, что написал кто-то другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:24 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичЖара, мать иё! А задача ТСа так и не решена! Клиенты не платят - бизнес страдает! После поста 21053000 он молчит. Видимо, все получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:28 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128alexeyvg"ключевое слово WITH автоматически созадёт временную таблицу на каждое написание". А вот когда слова оппонетна перефразируют по своему разумению - это называется "демагогия".Да, это очень доказательно, назвать "демагогией" :-) Моя интерпретация вашей фразы ровно такая же, как интерпретация любого другого человека. Её нельзя понять по другому. Ауууу, кто то понял фразу по другому, отзовитесь!!! ptr128alexeyvgне CTE неявно создаёт временные таблицы, а определённые операторы исполнения в database engine. Вы видите принципиальную разницу между фразами? "Объекты CTE размещаются в tempdb" "Объекты создаваемые CTE размещаются в tempdb" "Объекты создаваемые при использоании синтаксиса CTE размещаются в tempdb" "Объекты создаваемые операторами database engine при использоании синтаксиса CTE размещаются в tempdb" Лично я не вижу. Поэтому, если бы Вы попросили уточнить мою фразу, так как она Вам непонятна, то сразу же получили бы последний вариант. Вы же предпочли придраться к словам и интерпретировать мою фразу исключительно одним способом, удобным для Вас. Даже не смотря на то, что и Вы и я в курсе, что CTE - не более чем синтаксическая конструкция.Я не вижу разницы. Это совершенно идентичные неверные высказывания. Тут просто слово CTE лишнее. Она заставит прочитавшего человека искать CTE (слово WITH), что бы убрать оверхед по созданию временных таблиц. А это неправильно, искать нужно по другим признакам, а не по "WITH" Да вы прямо про это пишите, процитирую в сотый раз: ptr128Для чего в этой задаче CTE? Две временные таблицы неявно Вы создаете - это потеря производительности. А выигрыш в чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:43 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128Надо было сразу писать что-то вроде "Написание запросов при помощи CTE может привести (а при разработке и развитии продукта - точно приведет) к неявному созданию неиндексированных объектов в tempdb, что приведет к потере производительности, по сравнению с использованием временных таблиц с разумными индексами"Жесть, но это же не связано, мы это уже обсуждаем очень долго :-) Переписывание "без CTE" сделает абсолютно идентичный план запроса, с использованием worktable или без использования - вот прямо как было, так и останется. ptr128Привык гонять своих разработчиков краткоБедолаги :-) Пыхтят, убирают CTE, потому что начальнику не нравится, но картинка с планом остаётся абсолютно такая же :-) Самодур :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:47 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128 "Объекты CTE размещаются в tempdb" "Объекты создаваемые CTE размещаются в tempdb" "Объекты создаваемые при использоании синтаксиса CTE размещаются в tempdb" "Объекты создаваемые операторами database engine при использоании синтаксиса CTE размещаются в tempdb" Лично я не вижу. Яб согласился слышать такое от гуманитария, но для человека, который делает заявку на то, что он профессиональный программист - это вопиющая безграмотность. Я могу только удивляться тому, что на таком уровне восприятия реальности у тебя есть какие-то там "твои программисты" Но займемся семантикой. Сиречь значением слов. автор"Объекты CTE размещаются в tempdb" : {СТЕ является типом объектов. Когда создается объект типа СТЕ, его метаданные и данные всегда размещаются в tempdb} автор"Объекты создаваемые CTE размещаются в tempdb" : {Мы не знаем , является ли СТЕ "типом" в обычно понимании, но очевидно, что СТЕ это некий механизма, который может породить создание каких-то объектов. При каких-то условиях, эти объекты могут размещаться в tempdb } автор"Объекты создаваемые при использоании синтаксиса CTE размещаются в tempdb":{ СТЕ это некая форма записи когда , которая приводит к созданию объектов , которые всегда размещаются в tempdb } автор"Объекты создаваемые операторами database engine при использоании синтаксиса CTE размещаются в tempdb" Ну тут смысл аналогичен предыдущему. Итак, что мы видим? Что поциент а) не видит разницы в принципиально разных высказываниях б) каждое их этих высказываний ложное, потому, что: 1 - СТЕ не является типом, для СТЕ нет экземпляров, соответственно нельзя разместить в темпдб то, чего нет; 2 - СТЕ не создает объектов, объекты создает движок бд, и размещает их в тембдб когда считает нужным; 3 - объекты, которые были созданы при использовании синтаксиса СТЕ не всегда размещаются в темпбд; 4 - объекты, которые были созданы при использовании синтаксиса СТЕ не всегда размещаются в темпбд. В общем, поздравляем вас соврамши, гражданин "я-писал-интерпретатор-пока-вы-в-ясли-ходили" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:48 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
Cammomile : {Мы не знаем , является ли СТЕ "типом" в обычно понимании, но очевидно, что СТЕ это некий механизма, который может породить создание каких-то объектов. При каких-то условиях, эти объекты могут размещаться в tempdb } Поменять на : {Мы не знаем , является ли СТЕ "типом" в обычно понимании, но очевидно, что СТЕ это некий механизма, который может породить создание каких-то объектов. Эти объекты всегда размещаются в tempdb } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:53 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgно картинка с планом остаётся абсолютно такая же ptr128по сравнению с использованием временных таблиц с разумными индексами" Вы действительно утверждаете, что план запроса не зависит от индексов???? Занавес... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 10:57 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128alexeyvgно картинка с планом остаётся абсолютно такая же ptr128по сравнению с использованием временных таблиц с разумными индексами" Вы действительно утверждаете, что план запроса не зависит от индексов???? Занавес...Жесть. Я обсуждаю ваше высказывание про CTE, при чём тут индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:02 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
CammomileНо займемся семантикой. Сиречь значением слов. Cammomileслышать такое от гуманитария Но тогда почему Вы сами рассуждаете, как гуманитарий? Я действительно не расчитывал, что мою фразу будет читать гуманитарий, да еще и не знающий, ptrчто CTE - не более чем синтаксическая конструкция. CammomileСТЕ является типом объектов А в фразе "объекты строительства, транспорта и благоустройства" строительство, транспорт и благоустройство тоже является, по Вашему, типом объектов? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:04 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgptr128Вы действительно утверждаете, что план запроса не зависит от индексов???? Занавес...Жесть. Я обсуждаю ваше высказывание про CTE, при чём тут индексы? Я уже говорил неоднократно. ptr128при использовании CTE, табличных переменных и вложенных запросов, MS SQL не предоставляет возможности индексации результирующего набора данных. Что может привести (на больших объемах данных и сложных запросах) к худшей производительности, чем при явном использовании временных таблиц с разумно созданными индексами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:07 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgptr128Надо было сразу писать что-то вроде "Написание запросов при помощи CTE может привести (а при разработке и развитии продукта - точно приведет) к неявному созданию неиндексированных объектов в tempdb, что приведет к потере производительности, по сравнению с использованием временных таблиц с разумными индексами"Жесть, но это же не связано Что это и с чем не связано? Или мне, последовать Вашему примеру и самому придумать, что таоке "это" и с "чем" оно не связано. Ну, например, Ваша лживость (где скриншот?) и акоголизм ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:26 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
Господа, Сергей Алексеевич уже попросил быть более сдержанными. Вы уже 5 страниц толчёте воду в ступе. Пользы от топика =0,01% с учетом того что автор исчез(вроде бы довольным) ПиЭс. Топик сделал мне пятницу, но лучше закрыть его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:28 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
alexeyvgЖесть. Я обсуждаю ваше высказывание про CTE, при чём тут индексы? Изучите статью We recently assisted a global ISV to address a performance issue related to a poor performing recursive CTE (Common Table Expression). The ISV wanted the query that was running in excess of 3 minutes to run in less than 15 seconds on their servers. The end result of our efforts was a 3,600% performance improvement. Recursive CTE queries do have a reliance on the unique parent/child keys in order to get the best performance. Это ровно то, что я и утверждал изначально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:37 |
|
||
|
Вложенный запрос
|
|||
|---|---|---|---|
|
#18+
ptr128Rismenпропущено... Если открыть бд, то в таблице Residency столбце PriceOfResidency полная стоимость за проживание. В таблице Payment столбце Pay сколько оплачено. И нужно вывести тех клиентов, которые либо не заплатили, либо оплатили частично. Я вижу, что клиенты 1,2,3 полностью оплатили. В запросе я, так как писал его без БД, неправильно указал имя поля. Вместо SUM(ISNULL(P.Payment,0)) должно быть SUM(ISNULL(P.Pay,0)) И запрос честно выдает оставшихся двух клиентов. Еще раз запрос, с исправленным именем поля: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Спасибо, запрос выдаёт нужных клиентов, но только цифры не те ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 12:33 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39574204&tid=1690628]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 337ms |

| 0 / 0 |
