Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дошли руки до In Memory,отзовитесь кто использует? / 19 сообщений из 19, страница 1 из 1
13.12.2019, 15:58
    #39902648
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
Собственно говоря, решил лично изучить этот вопрос(практические варианты использования InMemory). Отзовитесь, кто использует, какой эффект? Интересует разумеется не аналог pintable а все что связано с изменением хранения структуры данных, оптимизацией выполнения запросов и т.п.
...
Рейтинг: 0 / 0
13.12.2019, 16:46
    #39902708
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
Интересует один вопрос, есть ли запросы которые ускоряются в InMemory, в разы(относительно обычной БД), предположим в случае нахождения и в том и в другом случае всех данных в памяти? В чем принципиальное отличие от pintable(для старых версий)с точки зрения запросов на чтение?
...
Рейтинг: 0 / 0
13.12.2019, 16:54
    #39902716
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
МуМу,

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

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

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

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

какие такие блокировки у InMemory-таблиц?
типа их же изобрели, чтобы как раз от блокировок избавиться
...
Рейтинг: 0 / 0
13.12.2019, 19:06
    #39902851
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
То есть запросы по таблицам InMemory и обычным будут как правило выполнятся(при отсутствии блокировок по обычным) будут выполнятся одно и то же время?(с учетом чтения страниц, наверное разница есть но какая?) По сути технология применяется для максимального параллелизма для операций вставки-изменений. Чудес при этом не бывает - данные могут немного в случае выключения сервера потеряться. По сути отказались от наследия и архитектуры страничных чтений как средство оптимизации работы с диском, достигая при этом высокого параллелизма и более высокого времени отклика. Но для большинства систем данная технология не выстреливает, в основном годится для многопоточных биллинговых(с небольшими транзакциями) систем с невысокими требованиями к устойчивости.(ну потеряем 10-ть последних транзакций - заново введем). Правильно ли я уловил суть;)?
Судя по всему весь в профит в чтении напрямую по хеш индексам(ссылкам), в отличии от издержек с вычитыванием данных по страницам,(наверное в каких то моментах может стать актуален вопрос пропускной возможности шины данных, здесь по идее меньше поток) .
...
Рейтинг: 0 / 0
13.12.2019, 19:12
    #39902856
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же InMemory, запросы одинаковые и на выходе профит в логических чтениях и времени выполнения? Мне бы сэкономило времени, заранее благодарю.
...
Рейтинг: 0 / 0
13.12.2019, 19:23
    #39902863
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
МуМу
Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же 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
13.12.2019, 19:24
    #39902864
МуМу
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
Интуитивный кейс, например архитектурно неправильно спроектирована система. Идет получение остатков в цикле по номенклатуре(объединение склад, резерв и т.п.). В этом случае если таблицы перевести в InMemory или если сделать их реплику таблиц(если ограничения не позволяют) то данные запросы за счет отстутствия страничного чтения ускорятся, правильно ли я понимаю?(что то мне кажется что скорость увеличится совсем немного)
...
Рейтинг: 0 / 0
13.12.2019, 19:28
    #39902867
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дошли руки до In Memory,отзовитесь кто использует?
Yasha123
alexeyvg

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

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

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


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

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



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

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



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


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


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