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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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