Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / При объединении по hash join выделяется объем памяти максимальный по размеру полей? / 19 сообщений из 19, страница 1 из 1
22.08.2018, 14:36
    #39691783
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Вопрос скорее всего риторический но хотелось бы подтверждения.
Производится hash join, сервер сразу выделяет память по размеру полей? Насколько помню - да. Выделяет максимально быстро по максимуму а не занимается проверкой на максимальную длину.
Если например есть поле штрихкод с макимальной длиной 100 а заполнено только 12 а остальное пробелы. Он и будет выделять сразу под 100 а не проверять сколько заполнено и потом выделять под 12.(ну или вести статистику и т.п.)
Я прав?
...
Рейтинг: 0 / 0
22.08.2018, 14:43
    #39691792
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Вдогонку напомните, как получить объем памяти(например в tempdb) которое скушал запрос?
...
Рейтинг: 0 / 0
22.08.2018, 14:49
    #39691797
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМу,

если это varchar то ожидаемый размер для него будет 100/2
...
Рейтинг: 0 / 0
22.08.2018, 14:51
    #39691798
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМу,

Вопрос выглядит странно, потому что сначала надо задать другой вопрос: а кто так проектировал БД, что нужно соединять таблицы по 100 байтовому ключу? Если бы ключи были подобраны правильно, то этим вопросом вообще не пришлось бы задаваться и не творить оптимизационные "танцы с бубном".
...
Рейтинг: 0 / 0
22.08.2018, 14:51
    #39691801
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
aleksrov,

Если это будет NVARCHAR, то 100 * 2
...
Рейтинг: 0 / 0
22.08.2018, 14:52
    #39691803
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Почему деленный на 2-а? Если будет заполнен 51-н символ, будет динамически выделятся память? Есть ссылки, не могу сходу найти?
...
Рейтинг: 0 / 0
22.08.2018, 14:55
    #39691807
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
a_voronin,

Ну вообщем то именно такая рекомендация и будет выдана. Тут вопрос просто в эффекте и лично интересно, может сервер и умеет понимать такие дыры в оптимизации и лечить их на ходу(что вряд ли потому как приведет к издержкам производительности)
...
Рейтинг: 0 / 0
22.08.2018, 15:02
    #39691814
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
a_voroninaleksrov,

Если это будет NVARCHAR, то 100 * 2

Ну вы же меня понял, я это имел ввиду http://aboutsqlserver.com/2010/08/18/what-is-the-optimal-size-for-variable-width-columns/
...
Рейтинг: 0 / 0
22.08.2018, 15:03
    #39691815
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Ну и в догонку https://blogs.msdn.microsoft.com/sqlqueryprocessing/2010/02/16/understanding-sql-server-memory-grant/ , просто статья хорошая
...
Рейтинг: 0 / 0
22.08.2018, 15:24
    #39691837
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМуЯ прав?Читайте знающих авторов - https://blogs.msdn.microsoft.com/craigfr/2006/08/10/hash-join/

a_voroninВопрос выглядит странно, потому что сначала надо задать другой вопрос: а кто так проектировал БД, что нужно соединять таблицы по 100 байтовому ключу?Сначала нужно понимать какие столбцы окажутся в Build-Table, а потом вопросы задавать.
...
Рейтинг: 0 / 0
22.08.2018, 15:25
    #39691838
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
удивлён данными математиками

авторесли это varchar то ожидаемый размер для него будет 100/2

авторЕсли это будет NVARCHAR, то 100 * 2

вы точно вопрос видели?
...
Рейтинг: 0 / 0
22.08.2018, 15:29
    #39691840
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМу,
авторЕсли например есть поле штрихкод с макимальной длиной 100 а заполнено только 12 а остальное пробелы. Он и будет выделять сразу под 100 а не проверять сколько заполнено и потом выделять под 12.(ну или вести статистику и т.п.)

не будет смотреть на то что заполен 1 символ или 100, это вообще не лёгкая операция. По остальному ссылка invm
...
Рейтинг: 0 / 0
22.08.2018, 16:07
    #39691891
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
invm,
Сам писал давненько алгоритмы подобные Hash match, поэтому внутренние алгоритмы понимаю. Требуемое поле гарантированно попадает Build-Table(или как там ее), всякие реквизиты и т.п. из рекордсета не попадают, их не учитываю. Эту статью давно читал(сходу гуглом не нашел), спасибо!
Остался вопрос каким параметром явно увидеть используемую память запросом?
...
Рейтинг: 0 / 0
22.08.2018, 16:11
    #39691898
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМу,

dm_exec_query_memory_grants ну и с какой-то версии в плане видно память
...
Рейтинг: 0 / 0
23.08.2018, 01:03
    #39692078
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
МуМу,

А вы вообще про какую именно память? Granted, Reserved или Used ?
...
Рейтинг: 0 / 0
23.08.2018, 11:59
    #39692302
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Grant выделяется по максимальной оценке. Из-за этого пара мега-отчетов может сожрать всю память. Надо resource governor настраивать во избежание.
...
Рейтинг: 0 / 0
23.08.2018, 12:21
    #39692329
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Владислав КолосовGrant выделяется по максимальной оценке. Из-за этого пара мега-отчетов может сожрать всю память. Надо resource governor настраивать во избежание.\
мы пихаем всё что когда-то слышали...
...
Рейтинг: 0 / 0
23.08.2018, 13:56
    #39692405
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
TaPaK,

пожирает и еще как, Вы с этим просто не сталкивались. Used может быть меньше Granted в 5-7 раз запросто.
...
Рейтинг: 0 / 0
23.08.2018, 13:57
    #39692407
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При объединении по hash join выделяется объем памяти максимальный по размеру полей?
Владислав КолосовTaPaK,

пожирает и еще как, Вы с этим просто не сталкивались. Used может быть меньше Granted в 5-7 раз запросто.
и как это касается темы? у кого что болит?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / При объединении по hash join выделяется объем памяти максимальный по размеру полей? / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]