Size: a a a

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

2020 July 16

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Nik Komarov
Добрый день, есть проблема. Лью/обновляю данные в таблицу N с помощью merge.  В данных, которые  лью, содержится не более 100к записей.  Мерж деградирует при росте числа записей в таблице N, хотя вроде бы не должен. Пример и детали по ссылке. Буду признателен за направление, куда копать. https://pastebin.com/ANcefviq
Версия, редакция SQL server, план запроса и какие индексы есть на таблицах.
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Nik Komarov
Добрый день, есть проблема. Лью/обновляю данные в таблицу N с помощью merge.  В данных, которые  лью, содержится не более 100к записей.  Мерж деградирует при росте числа записей в таблице N, хотя вроде бы не должен. Пример и детали по ссылке. Буду признателен за направление, куда копать. https://pastebin.com/ANcefviq
Реально схема называется [dbo.Sales]? В чем идея такого названия?
источник

VP

Volodymyr Prysyazhyu... in SqlCom.ru - Стиль жизни SQL
- - этому условию удовлетворяет не более 100к записей
ИМХО, один из простых советов, а попробуйте ка выполнить пакетную заливку данных, по 4999 записей, чтобы не было экалаций разнообразных блокировок таблиц.
источник

NK

Nik Komarov in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
Версия, редакция SQL server, план запроса и какие индексы есть на таблицах.
13.0.4206.0
по поводу схемы - как-то так исторически завелось. [dbo] - общие вещи +  [dbo.whatever] - где watever - название доменной области из DDD.

индексы кластерный + на кждое поле
источник

NK

Nik Komarov in SqlCom.ru - Стиль жизни SQL
Volodymyr Prysyazhyuk
- - этому условию удовлетворяет не более 100к записей
ИМХО, один из простых советов, а попробуйте ка выполнить пакетную заливку данных, по 4999 записей, чтобы не было экалаций разнообразных блокировок таблиц.
сейчас как раз и попробую, спасибо) но хочу разобраться для себя как оно работает и почему такой результат. То есть конкретную причину понять)
источник

DN

Denis Novickiy in SqlCom.ru - Стиль жизни SQL
Nik Komarov
сейчас как раз и попробую, спасибо) но хочу разобраться для себя как оно работает и почему такой результат. То есть конкретную причину понять)
может причина в этом
Для улучшения производительности инструкции MERGE и гарантирования получения правильных результатов приводятся следующие рекомендации по использованию соединений.

   Укажите в предложении ON <merge_search_condition> только те условия поиска, которые определяют критерий совпадения данных в исходных и целевых таблицах. То есть необходимо указать только те столбцы целевой таблицы, которые сравниваются с соответствующими столбцами исходной таблицы.
   Не включайте сравнения с другими значениями, такими как константа.
источник

NK

Nik Komarov in SqlCom.ru - Стиль жизни SQL
эм, ребят, кажись метод "правильно заданный вопрос cодержит ответ" помог. Всем спасибо) Решилось + 1 индексом

просто в индекс по Storehouse_ID надо было включить остальные поля, используемые при мердже. Странно, что анализатор плана это не подсказал(
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Nik Komarov
13.0.4206.0
по поводу схемы - как-то так исторически завелось. [dbo] - общие вещи +  [dbo.whatever] - где watever - название доменной области из DDD.

индексы кластерный + на кждое поле
На будущее план сюда сразу грузите, не всегда есть возможность за компом его посмотреть, я уже ваш загрузил, https://www.brentozar.com/pastetheplan/?id=ryNaCppkP
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Nik Komarov
эм, ребят, кажись метод "правильно заданный вопрос cодержит ответ" помог. Всем спасибо) Решилось + 1 индексом

просто в индекс по Storehouse_ID надо было включить остальные поля, используемые при мердже. Странно, что анализатор плана это не подсказал(
еще у вас там такой warning Type conversion in expression (CONVERT_IMPLICIT(nvarchar(max),[src].[Title],0)) may affect "CardinalityEstimate" in query plan choice, это конечно особо на таких объемах не влияет, но при увеличении размеров может сказаться
источник

NK

Nik Komarov in SqlCom.ru - Стиль жизни SQL
спасибо, глянем)
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Nik Komarov
спасибо, глянем)
использование типа данных nvarchar(max) для столбца Title очень сомнительно, мне кажется там varchar(1000) за глаза должно хватить, ну на крайний случай varchar(2000) для слишком упоротых и “креативных” названий
если сбросите create table можно еще по типам данных пройтись
источник

NK

Nik Komarov in SqlCom.ru - Стиль жизни SQL
у меня легаси небольшой, осталось от code-first-хуяк-хуяк подхода. Там и 200 за глаза, но переделка этого к сожалению отзовется бОльшей попоболью)
источник
2020 July 17

A

Artur in SqlCom.ru - Стиль жизни SQL
Всем привет!
А можете порекомендовать бюджетные курсы или краткие гайдланы по быстрому вхождению в тему администрированию MS SQL Server
источник

MK

Mikhail Kovalenko in SqlCom.ru - Стиль жизни SQL
Artur
Всем привет!
А можете порекомендовать бюджетные курсы или краткие гайдланы по быстрому вхождению в тему администрированию MS SQL Server
Можно начать с бесплатной возможности. Очень удачные курсы есть на этом канале https://www.youtube.com/channel/UCglBwn1CkjvSjAJ9EwbYTaw
источник

A

Artur in SqlCom.ru - Стиль жизни SQL
Mikhail Kovalenko
Можно начать с бесплатной возможности. Очень удачные курсы есть на этом канале https://www.youtube.com/channel/UCglBwn1CkjvSjAJ9EwbYTaw
Спасибо за рекомендацию!
источник

MK

Mikhail Kovalenko in SqlCom.ru - Стиль жизни SQL
Ну и букварей на просторах полно. А если денег до фига, тогда можно на курсы идти. Там в сжатой форме быстро и под конкретные задачи. Но лучше искать не контору, которая проводит курсы, а идти на ФИО препода.
источник

I

Ivan in SqlCom.ru - Стиль жизни SQL
привет
источник

I

Ivan in SqlCom.ru - Стиль жизни SQL
как загрузить Дамп базы в mysql?

Выполняю загрузку в соответствии с запросом:
mysql ИМЯ_БАЗЫ -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ < ПУТЬ_ДО_SQL_ФАЙЛА

но выскакивает ошибка. помогите чайнику
источник

I

Ivan in SqlCom.ru - Стиль жизни SQL
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
skillbox -uroot -ptest < dump.sql' at line 1
источник

I

Ivan in SqlCom.ru - Стиль жизни SQL
Запрос такой:
mysql> mysql skillbox -uroot -ptest < dump.sql
источник