powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дошли руки до In Memory,отзовитесь кто использует?
19 сообщений из 19, страница 1 из 1
Дошли руки до In Memory,отзовитесь кто использует?
    #39902648
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно говоря, решил лично изучить этот вопрос(практические варианты использования InMemory). Отзовитесь, кто использует, какой эффект? Интересует разумеется не аналог pintable а все что связано с изменением хранения структуры данных, оптимизацией выполнения запросов и т.п.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902708
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует один вопрос, есть ли запросы которые ускоряются в InMemory, в разы(относительно обычной БД), предположим в случае нахождения и в том и в другом случае всех данных в памяти? В чем принципиальное отличие от pintable(для старых версий)с точки зрения запросов на чтение?
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902716
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу,

там же совершенно разный подход к обработке. pintable лочит страницы в bufferpool + латчи как были так и остаются, в то время как xtp использует hash-таблицы и latch-free.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902737
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу,

у InMemory на свои преимущества есть и недостатки, особенно DBA и Devops характера. Прежде, чем браться за внедрение, надо тщательно изучить все стороны использования, не сосредотачиваться только на производительности.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902766
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу
В чем принципиальное отличие от pintable(для старых версий)с точки зрения запросов на чтение?
pintable - это обычные таблицы, страничная организация, слоты записей на страницах. В общем, pintable - это обычная таблица, они и так в памяти, если её достаточно.

А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок, и версионность, при этом хорошо бы, что бы процедуры тоже были native compilation
Тогда всё будет очень будет быстро, кроме тех манипуляций, которые быстрее на обычных таблицах :-)
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902804
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg

А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок
...

какие такие блокировки у InMemory-таблиц?
типа их же изобрели, чтобы как раз от блокировок избавиться
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902851
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть запросы по таблицам InMemory и обычным будут как правило выполнятся(при отсутствии блокировок по обычным) будут выполнятся одно и то же время?(с учетом чтения страниц, наверное разница есть но какая?) По сути технология применяется для максимального параллелизма для операций вставки-изменений. Чудес при этом не бывает - данные могут немного в случае выключения сервера потеряться. По сути отказались от наследия и архитектуры страничных чтений как средство оптимизации работы с диском, достигая при этом высокого параллелизма и более высокого времени отклика. Но для большинства систем данная технология не выстреливает, в основном годится для многопоточных биллинговых(с небольшими транзакциями) систем с невысокими требованиями к устойчивости.(ну потеряем 10-ть последних транзакций - заново введем). Правильно ли я уловил суть;)?
Судя по всему весь в профит в чтении напрямую по хеш индексам(ссылкам), в отличии от издержек с вычитыванием данных по страницам,(наверное в каких то моментах может стать актуален вопрос пропускной возможности шины данных, здесь по идее меньше поток) .
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902856
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же InMemory, запросы одинаковые и на выходе профит в логических чтениях и времени выполнения? Мне бы сэкономило времени, заранее благодарю.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902863
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу
Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же InMemory, запросы одинаковые и на выходе профит в логических чтениях и времени выполнения? Мне бы сэкономило времени, заранее благодарю.
Ну вот, нашёл на SQL.RU :-)

Результаты тестирования:
Parameters of TestMS SQL Server 2014average val, secMS SQL Server 2016average val, secTable with DURABILITY = SCHEMA_AND_DATA585/584/584/588585,25626/637/610/616622,25Table with DURABILITY = SCHEMA_AND_DATA with no UNICODE column, BIN610/604/585/606/601,25Table with DURABILITY = SCHEMA_AND_DATA , UNICODE,неBINполе588/604/614/617605,75Table with DURABILITY = SCHEMA_ONLY38/37/393847/55/5251,3Table with DURABILITY = SCHEMA_ONLY with no UNICODE column, BIN44/46/4946,3Table with DURABILITY = SCHEMA_ONLY , UNICODE,неBINполе53/50/5251,7Native procedure with DURABILITY = SCHEMA_AND_DATA560/553/559557,3564/584/581576,3Native procedure with DURABILITY= SCHEMA_ONLY28/26/30/2838/38/3737,7Disk table614/605/596605633/637/634634,67
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902864
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интуитивный кейс, например архитектурно неправильно спроектирована система. Идет получение остатков в цикле по номенклатуре(объединение склад, резерв и т.п.). В этом случае если таблицы перевести в InMemory или если сделать их реплику таблиц(если ограничения не позволяют) то данные запросы за счет отстутствия страничного чтения ускорятся, правильно ли я понимаю?(что то мне кажется что скорость увеличится совсем немного)
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902867
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
alexeyvg

А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок
...

какие такие блокировки у InMemory-таблиц?
типа их же изобрели, чтобы как раз от блокировок избавиться
Да, там же версионность, перепутал, одновременно про блокировки читал, отложилось слово :-)
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902869
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,
Ну как то хотелось бы "ВАУ" эффекта, типа вот обычные а вот в памяти. Впрочем буду экспериментировать в понедельник. Хотелось бы понять подход, как минимальными усилиями получить максимальный эффект. Пока лишь догадки.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902871
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу
alexeyvg,
Ну как то хотелось бы "ВАУ" эффекта, типа вот обычные а вот в памяти. Впрочем буду экспериментировать в понедельник. Хотелось бы понять подход, как минимальными усилиями получить максимальный эффект. Пока лишь догадки.
По тесту ВАУ видно для SCHEMA_ONLY :-)
Вполне можно использовать вместо обычных временных таблиц.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902873
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,
Ну на вставку не так интересно, тут все же ограничений много. Хотелось бы тесты на чтение. Если там есть эффект то есть мысли куда можно применить.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902884
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу
alexeyvg,
Ну на вставку не так интересно, тут все же ограничений много. Хотелось бы тесты на чтение. Если там есть эффект то есть мысли куда можно применить.
ИМХО для чтений единственное, где можно что то выиграть - это чтение по одной записи в цикле, и то я не уверен.
В обычных запросах, где джойны, или выборки группы записей, по моему, никаких преимуществ нет.
Это в общем достаточно специфическая технология, а не "замена плохого на хорошее".

Вот умные люди рассуждают о неприменимости InMemory для чтений: https://dba.stackexchange.com/questions/191300/sql-server-in-memory-table-performace
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902891
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,
Ну так такой я кейс интуитивно приводил, почему бы и нет?, есть много систем с наследуемой архитектурой, которую возможности поменять нет. Если легко можно включить режим InMemory для нужных таблиц, или сделать репликанты(с подменой через view) и если это даст эффект, то почему бы и нет.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902909
Фотография МуМу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще некоторый эффект "дежавю", помню переход некоторых систем с DBF на MSSQL. Так вот что забавно там некоторые "запросы" работали быстрее за счет буферизации памяти но при этом не обеспечивая транзакционной целостности, в монопольном режиме работы включался отдельный режим турбо. Проблема получения данных списков в цикле а не единым набором данных - это была боль в переводе на MSSQL. Вот такое складывается впечатление что InMemory это старый DBF на новый лад:) Пока видится применение массовой,параллельной вставки и одиночные запросы в цикле(обязательно с минимальным набором данных, без больших данных). Как только набор данных превышает сетевой или дисковый агрегат - все преимущества теряются.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902922
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуМу
То есть запросы по таблицам InMemory и обычным будут как правило выполнятся(при отсутствии блокировок по обычным) будут выполнятся одно и то же время?(с учетом чтения страниц, наверное разница есть но какая?) По сути технология применяется для максимального параллелизма для операций вставки-изменений.


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

Чудес при этом не бывает - данные могут немного в случае выключения сервера потеряться. По сути отказались от наследия и архитектуры страничных чтений как средство оптимизации работы с диском, достигая при этом высокого параллелизма и более высокого времени отклика.



Если используется полная устойчивость то данные даже при потере питания не теряются.
Если устойчивость schema_only, тогда риск конечно есть.

Но для большинства систем данная технология не выстреливает, в основном годится для многопоточных биллинговых(с небольшими транзакциями) систем с невысокими требованиями к устойчивости.(ну потеряем 10-ть последних транзакций - заново введем). Правильно ли я уловил суть;)?
Судя по всему весь в профит в чтении напрямую по хеш индексам(ссылкам), в отличии от издержек с вычитыванием данных по страницам,(наверное в каких то моментах может стать актуален вопрос пропускной возможности шины данных, здесь по идее меньше поток) .



Она вообще мало где выстреливает для систем которые изначально не проектировались под использование данной технологии.
Количество ограничений у нее с три короба.
...
Рейтинг: 0 / 0
Дошли руки до In Memory,отзовитесь кто использует?
    #39902955
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Ну вот, нашёл на SQL.RU :-)


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


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