Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 May 21

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Интересная онлайн конференция намечается, доклады должны быть интересными: https://eightkb.online/
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
Проверить можно с помощью простого запроса (вернет Msg 8134, Level 16, State 1, Line 1 Divide by zero error encountered.):
SELECT 1 WHERE 1=1 AND 1/0=0;

При этом для CASE работает как ожидается:
SELECT CASE WHEN 1=1 THEN 'Yes'
   WHEN 1/0 = 0 THEN 'No' END;
Подробнее для CASE (комментарии тоже интересные )https://sqlstudies.com/2019/06/13/does-the-case-statement-short-circuit/comment-page-1/

А вот для OR совсем все интересно: https://sqlstudies.com/2019/06/17/its-interesting-how-an-or-short-circuits/
Спасибо большое
источник
2020 May 22

KA

Konstantin A in SqlCom.ru - Стиль жизни SQL
Добрый день! Меня Константин зовут, я Hr компании.
Сейчас появилась потребность в повышении навыков Команды разработки, а точнее с SQL. Знаете ли вы какие то серьёзные курсы, которые могли бы порекомендовать?
источник

NP

Nick Proskuryakov in SqlCom.ru - Стиль жизни SQL
Konstantin A
Добрый день! Меня Константин зовут, я Hr компании.
Сейчас появилась потребность в повышении навыков Команды разработки, а точнее с SQL. Знаете ли вы какие то серьёзные курсы, которые могли бы порекомендовать?
Добрый день, могу порекомендовать вам корпоративное обучение от Сергея Олонцева
источник

KA

Konstantin A in SqlCom.ru - Стиль жизни SQL
А где об этом можно почитать?
источник

T

Timus in SqlCom.ru - Стиль жизни SQL
Konstantin A
А где об этом можно почитать?
источник

KA

Konstantin A in SqlCom.ru - Стиль жизни SQL
Спасибо, связался!
Есть еще рекомендации?
источник

i

insci in SqlCom.ru - Стиль жизни SQL
Книжки им купите по той области что нужна. Лучше ничего не придумаете.
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
На sql-ex.ru их отправьте, пусть головы ломают )))
источник

T

Timus in SqlCom.ru - Стиль жизни SQL
insci
Книжки им купите по той области что нужна. Лучше ничего не придумаете.
ну тогда не книжки, а конкретные задачи по SQL.
источник

i

insci in SqlCom.ru - Стиль жизни SQL
Timus
ну тогда не книжки, а конкретные задачи по SQL.
ну да, вообще с этого стоит начать - какие задачи они будут решать.
источник

T

Timus in SqlCom.ru - Стиль жизни SQL
Konstantin A
Добрый день! Меня Константин зовут, я Hr компании.
Сейчас появилась потребность в повышении навыков Команды разработки, а точнее с SQL. Знаете ли вы какие то серьёзные курсы, которые могли бы порекомендовать?
а можно как то подробнее? какие навыки скуля хотите повысить?
ну так ради интереса
источник

AP

Aleksey PaRa in SqlCom.ru - Стиль жизни SQL
Подскажите пожалуйста, была таблица с кластерным индексом по Id (тип INT NOT NULL). Секционировал таблицу по колонке со временем FinalTime(тип DateTime NULL).  Кластерный индекс стал по Id и FinalTime. Есть ли большая разница, чтобы на первое место в кластерном индексе поставить FinalTime а потом Id ?  
На таблице есть и некластерные индексы выровненные по FinalTime, в частности на колонку Inserted(DateTime NOT NULL). Проблема в том, что после секционирования стали возникать часто блокировки в запросах вида Select Top 100  * ... Order by Inserted

На плане выполнения запроса делает Key Lookup из кластерного индекса 50% 120К записей и Index Scan из некластерного индекса покрывающего запрос 3%, 120К записей. + Сортировка 47%
источник

TS

Tim Safari in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
Интересная онлайн конференция намечается, доклады должны быть интересными: https://eightkb.online/
спасибо )
источник

i

insci in SqlCom.ru - Стиль жизни SQL
Aleksey PaRa
Подскажите пожалуйста, была таблица с кластерным индексом по Id (тип INT NOT NULL). Секционировал таблицу по колонке со временем FinalTime(тип DateTime NULL).  Кластерный индекс стал по Id и FinalTime. Есть ли большая разница, чтобы на первое место в кластерном индексе поставить FinalTime а потом Id ?  
На таблице есть и некластерные индексы выровненные по FinalTime, в частности на колонку Inserted(DateTime NOT NULL). Проблема в том, что после секционирования стали возникать часто блокировки в запросах вида Select Top 100  * ... Order by Inserted

На плане выполнения запроса делает Key Lookup из кластерного индекса 50% 120К записей и Index Scan из некластерного индекса покрывающего запрос 3%, 120К записей. + Сортировка 47%
Может глупый вопрос, но пробовали select (nolock) ? Если не критичен уровень изоляции транзакции
источник

AP

Aleksey PaRa in SqlCom.ru - Стиль жизни SQL
insci
Может глупый вопрос, но пробовали select (nolock) ? Если не критичен уровень изоляции транзакции
Вопрос больше в продуктивности поиска. Очень долго выполняется запрос, хотя индексами покрыт. Nolock не повышает скорость выполнения.
источник

AP

Aleksey PaRa in SqlCom.ru - Стиль жизни SQL
Минуту может крутиться запрос. Хотя должен выполняться не больше секунды. А само секционирование добавлялось, чтобы быстро удалять записи перенесённые в ОЛАП и не возникало блокировок при удалении записей.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
давайте начнем с теории, зачем вообще нужно партиционирование и какие преимущества оно дает:
1. когда вы включаете в кластерный индекс надо добавить колонку по которой происходило партиционирование, это позволяет оптимизатору, на основании функции партиционирования, делать точечный запрос по партициям, если присутствуют необходимые условия в предикатах.
2. вы можете объединять\исключать\добавлять партиции в этот момент оптимизатор использует блокировку уровня SCH-M,  с одной стороны это происходит быстро с другой стороны такие суперблокировки не совместимы
3. вы монете использовать не выровненные индексы, которые будут построены на разных партициях, но тогда забудьте о switch partitions, т.к. это работает только с выровненными индексами
4. Появляется новый уровень эскалации, если раньше у вас были RID,Page,Extents,Table,  то появится новый уровень Partition
5. Вы можете положить разные партиции в разные файловые группы на разные и тем самым задействовать утилизацию несколько дисков одновременно и делать бэкапы по файловым группам например.
6. Можно установить разные уровни сжатия для разных партиций.
источник

DI

Dmitriy Ivanov in SqlCom.ru - Стиль жизни SQL
ну и конечно же нужен сам запрос  и его план, у всех местных хрустальные шары давно потеряны
источник

AD

Andrey Danilov in SqlCom.ru - Стиль жизни SQL
Привет. Вопрос банальный:
Насколько большая разница в производительности между
1) inner join (фильтр)
2) in (фильтр)
3) exists

Какой вариант каноничный
источник