powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / In-Memory Optimized Tables
25 сообщений из 31, страница 1 из 2
In-Memory Optimized Tables
    #40041277
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пара вопросов:
а) есть 2 таблицы и 1 процедура, работающая с ними
б) таблицы я конвертнул в In-Memory Optimized Tables, процедуры остались почти нетронутыми.

Этого достаточно? или надо конвертнуть процедуру в Native compiled?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40041329
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

достаточно - смотря для чего.

В таком варианте вы используете так называемый "interop access" к xtp-таблицам, он несколько медленней поскольку вы тратите процессорное время на компиляцию инструкций.

Если у вас есть возможность переписать процедура на native compilation, то перепишите - получите максимальный выигрыш в плане быстродействия от XTP.

Другое дело что не всегда можно компиляцию в собственном коде применять, потому что некоторые TSQL инструкции там не поддерживаются.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40041454
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

достаточно - смотря для чего.

В таком варианте вы используете так называемый "interop access" к xtp-таблицам, он несколько медленней поскольку вы тратите процессорное время на компиляцию инструкций.

Если у вас есть возможность переписать процедура на native compilation, то перепишите - получите максимальный выигрыш в плане быстродействия от XTP.

Другое дело что не всегда можно компиляцию в собственном коде применять, потому что некоторые TSQL инструкции там не поддерживаются.


ясно, т.е. можно, желательно, но не обязательно.

Я проверил свою процедуру, там до фига не поддерживаемых моментов для Native Compiled.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043311
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал переделывать процедуру в Native Compiled и нарвался на такое:

там чтение из обычной таблицы Т, чем заменить?
При этом таблицу менять в memory_optimized пока не получится.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043372
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Начал переделывать процедуру в Native Compiled и нарвался на такое:

там чтение из обычной таблицы Т, чем заменить?
При этом таблицу менять в memory_optimized пока не получится.


ничем, вы не можете обращаться в NC-процедуре к обычным дисковым таблицам.

если у вас логика подразумевает что вы будете пытаться в запросах использовать связку disk-based table join xtp-tables / etc, то здесь только интерпретируемый код.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043394
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин
Начал переделывать процедуру в Native Compiled и нарвался на такое:

там чтение из обычной таблицы Т, чем заменить?
При этом таблицу менять в memory_optimized пока не получится.


ничем, вы не можете обращаться в NC-процедуре к обычным дисковым таблицам.

если у вас логика подразумевает что вы будете пытаться в запросах использовать связку disk-based table join xtp-tables / etc, то здесь только интерпретируемый код.


делаю wrapper так:

обычная процедура
читаю данные из обычной таблицы, передаю в параметрах
->NC процедура
->работа с таблицами MEMORY_OPTIMIZED

Так срабатывает.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043397
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем заменить вызов на первый взгляд безобидной REPLACE?

Код: sql
1.
SELECT @name = replace(@inname, ':' + @new + ':', ':' + @old + ':')



авторMsg 10794, Level 16, State 93, Procedure usp_2, Line 101 [Batch Start Line 108]
The function 'replace' is not supported with natively compiled modules.

т.е. внутри строки где-то может быть :dobedo:, его надо заменить на :bedobe:
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043434
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Те функции которые недоступны из NC, придется выносить за пределы до вызова хранимки.

Можно конечно эмулировать работу replace с помощью цикла и итерации по substring но имхо это изврат.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043445
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

Те функции которые недоступны из NC, придется выносить за пределы до вызова хранимки.

Можно конечно эмулировать работу replace с помощью цикла и итерации по substring но имхо это изврат.


вот, да, крутил-мутил, но придется выносить во враппер
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043930
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вот вопрос.
Какое значение ставить в BUCKET_COUNT? Что именно это означает?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043958
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

https://www.sql.ru/forum/1197519/pomogite-opredelit-bucket-count

The bucket count should ideally be close to 1 – 2X the number of unique key values that are expected in the table.
For example, if you have an index on part_no and expect 10,000 unique part numbers, you specify a
BUCKET_COUNT of 10,000 – 20,000.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043965
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

https://www.sql.ru/forum/1197519/pomogite-opredelit-bucket-count

The bucket count should ideally be close to 1 – 2X the number of unique key values that are expected in the table.
For example, if you have an index on part_no and expect 10,000 unique part numbers, you specify a
BUCKET_COUNT of 10,000 – 20,000.


спасибо! но, видимо, там д.б. "ideally be close to [Х – 2X] " исходя из примера?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043986
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

вы учтите что хеш-индекс достаточно специфичная штука, так ли он вам нужен?


на сколько я понял вы вообще пытаетесь перевести уже какую то существующую базу на рельсы XTP.
чисто имхо это не совсем верный подход.
сама технология имеет кучу ограничений и условностей, обычно под данную технологию сразу проектируют БД с учетом всех ее особенностей с нуля, а не переводят готовые решения которые изначально затачивались под песеммистический параллелизм и все его плюшки
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40043993
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин

спасибо! но, видимо, там д.б. "ideally be close to [Х – 2X] " исходя из примера?


от 1-го до 2-х X
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40044039
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

вы учтите что хеш-индекс достаточно специфичная штука, так ли он вам нужен?


на сколько я понял вы вообще пытаетесь перевести уже какую то существующую базу на рельсы XTP.
чисто имхо это не совсем верный подход.
сама технология имеет кучу ограничений и условностей, обычно под данную технологию сразу проектируют БД с учетом всех ее особенностей с нуля, а не переводят готовые решения которые изначально затачивались под песеммистический параллелизм и все его плюшки


Вы правы в целом, но:
хэш-индекс - один из двух доступных для memory optimized tables, так что у меня вариантов нет.
Да, практически существующую, но тоже - существующую структуру, я хочу перевести несколько таблиц и процедур, которые "просятся". А остальные, которые будут в работе большими - и хотел бы, но не вижу вариантов.
Например, есть таблица с несложной структурой, которую можно было бы перевести в мемори оптимизнутые, но там два этажа подчинений:
Т1(мастер)->10 T1N (details)->5 T11M (details)

Так что пока ограничиваюсь малым: парой таблиц и парой процедур.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045472
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такой вопрос:
расцепил таблицы TMaster->TDetails
Сделал TDetails MemoryOptimized, а TMaster осталась дисковой .
При попытке вернуть Foreign Key пишет ошибку

авторMsg 10778, Level 16, State 0, Line 41
Foreign key relationships between memory optimized tables and non-memory optimized tables are not supported.
Msg 1750, Level 16, State 1, Line 41
Could not create constraint or index. See previous errors.


Вопрос: как сцепить?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045479
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Еще такой вопрос:
расцепил таблицы TMaster->TDetails
Сделал TDetails MemoryOptimized, а TMaster осталась дисковой .
При попытке вернуть Foreign Key пишет ошибку

авторMsg 10778, Level 16, State 0, Line 41
Foreign key relationships between memory optimized tables and non-memory optimized tables are not supported.
Msg 1750, Level 16, State 1, Line 41
Could not create constraint or index. See previous errors.


Вопрос: как сцепить?

Ответ: никак.

Или делайте обе таблицы xtp, или обе таблицы дисковые
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045489
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин
Еще такой вопрос:
расцепил таблицы TMaster->TDetails
Сделал TDetails MemoryOptimized, а TMaster осталась дисковой .
При попытке вернуть Foreign Key пишет ошибку

пропущено...


Вопрос: как сцепить?


Ответ: никак.

Или делайте обе таблицы xtp, или обе таблицы дисковые


ясно, но, если я конвертирую часть таблиц, то когда-то надо решать.
Может руками, типа триггер прикрутить? если он сработает, конечно.
Т.е. получается, что все эти делете каскаде и т.д. тоже накрываются? как с ними быть в случае дисковой и инмемори таблицы?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045509
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

у вас накрываются любые технологии которые заведомо не поддерживаются in-memory таблицами

список вот:
https://docs.microsoft.com/ru-ru/sql/relational-databases/in-memory-oltp/transact-sql-constructs-not-supported-by-in-memory-oltp?view=sql-server-ver15

+ограничения NC процедур

+фишки оптимистической модели управления параллелизмом.
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045515
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
Ролг Хупин,

у вас накрываются любые технологии которые заведомо не поддерживаются in-memory таблицами

список вот:
https://docs.microsoft.com/ru-ru/sql/relational-databases/in-memory-oltp/transact-sql-constructs-not-supported-by-in-memory-oltp?view=sql-server-ver15

+ограничения NC процедур

+фишки оптимистической модели управления параллелизмом.


понял, но я же не одинок в этом безумном мире, как-то же люди моделируют свяь в таких случаях?
или оставляют свободно болтаться после конвертации да и х.с.н.?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045566
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дальше, есть у меня в триггере, который я делаю NC такая фигня

UPDATE dbo.names SET [hname] = CHECKSUM(idname) where [id] =@Id

Но CHECKSUM не поддерживается.
Куда бежать? Чем заменить?
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045628
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

нельзя и невинность соблюсти и капитал приобрести. Для In-memory технологии ниша довольно узкая и специфическая. Насколько я понял, область применения - это почти или полностью автоматизированные системы накопления и обработки, не ориентированные на человека. То, что Вы пытаетесь прикрутить - это куски Human-affected workflow.
Сначала надо понять - как эта технология послужит Вашим целям кроме " должно быть быстрее, обещали же".
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045658
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

нельзя и невинность соблюсти и капитал приобрести. Для In-memory технологии ниша довольно узкая и специфическая. Насколько я понял, область применения - это почти или полностью автоматизированные системы накопления и обработки, не ориентированные на человека. То, что Вы пытаетесь прикрутить - это куски Human-affected workflow.
Сначала надо понять - как эта технология послужит Вашим целям кроме " должно быть быстрее, обещали же".


Вы правы, но "должно быть быстрее" - и это тоже одна из объявленных целей.
Я хочу практически проделать то, о чем было заявлено майкрософтом.
Они, кстати, не ограничивали применение In-memory. В частности, если юзер хочет перевести часть таблиц-процедур-триггеров на In-memory - это допустимо и нормально. Ограничений нет, но есть ограничения на саму технологию, с чем я и борюсь в своих экспериментах
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045838
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Ролг Хупин,

нельзя и невинность соблюсти и капитал приобрести. Для In-memory технологии ниша довольно узкая и специфическая. Насколько я понял, область применения - это почти или полностью автоматизированные системы накопления и обработки, не ориентированные на человека. То, что Вы пытаетесь прикрутить - это куски Human-affected workflow.
Сначала надо понять - как эта технология послужит Вашим целям кроме " должно быть быстрее, обещали же".


Кстати, вот нашел

авторThe In-Memory OLTP Engine is fully integrated in the SQL Server Database Engine.
You do not need to perform complex system refactoring, splitting data between
in-memory and conventional database servers or moving all of the data from the
database into memory. You can separate in-memory and disk data on a table-by-table
basis, which allows you to move active operational data into memory, keeping other
tables and historical data on disk. In some cases, that migration can even be done
transparently to client applications.


Так что - все ок, идем дальше
...
Рейтинг: 0 / 0
In-Memory Optimized Tables
    #40045839
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

да, надо сказать что их рекламная кампания ставит в заблуждение, на плакате все улыбаются и все довольны. Я тоже когда-то повёлся на эту рекламу. :)
Но потом быстро выяснилось, что технология пригодна лишь для хардкор-реляционных систем.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / In-Memory Optimized Tables
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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