|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
Собственно говоря, решил лично изучить этот вопрос(практические варианты использования InMemory). Отзовитесь, кто использует, какой эффект? Интересует разумеется не аналог pintable а все что связано с изменением хранения структуры данных, оптимизацией выполнения запросов и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 15:58 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
Интересует один вопрос, есть ли запросы которые ускоряются в InMemory, в разы(относительно обычной БД), предположим в случае нахождения и в том и в другом случае всех данных в памяти? В чем принципиальное отличие от pintable(для старых версий)с точки зрения запросов на чтение? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 16:46 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу, там же совершенно разный подход к обработке. pintable лочит страницы в bufferpool + латчи как были так и остаются, в то время как xtp использует hash-таблицы и latch-free. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 16:54 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу, у InMemory на свои преимущества есть и недостатки, особенно DBA и Devops характера. Прежде, чем браться за внедрение, надо тщательно изучить все стороны использования, не сосредотачиваться только на производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 17:20 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу В чем принципиальное отличие от pintable(для старых версий)с точки зрения запросов на чтение? А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок, и версионность, при этом хорошо бы, что бы процедуры тоже были native compilation Тогда всё будет очень будет быстро, кроме тех манипуляций, которые быстрее на обычных таблицах :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 17:34 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
alexeyvg А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок ... какие такие блокировки у InMemory-таблиц? типа их же изобрели, чтобы как раз от блокировок избавиться ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 17:56 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
То есть запросы по таблицам InMemory и обычным будут как правило выполнятся(при отсутствии блокировок по обычным) будут выполнятся одно и то же время?(с учетом чтения страниц, наверное разница есть но какая?) По сути технология применяется для максимального параллелизма для операций вставки-изменений. Чудес при этом не бывает - данные могут немного в случае выключения сервера потеряться. По сути отказались от наследия и архитектуры страничных чтений как средство оптимизации работы с диском, достигая при этом высокого параллелизма и более высокого времени отклика. Но для большинства систем данная технология не выстреливает, в основном годится для многопоточных биллинговых(с небольшими транзакциями) систем с невысокими требованиями к устойчивости.(ну потеряем 10-ть последних транзакций - заново введем). Правильно ли я уловил суть;)? Судя по всему весь в профит в чтении напрямую по хеш индексам(ссылкам), в отличии от издержек с вычитыванием данных по страницам,(наверное в каких то моментах может стать актуален вопрос пропускной возможности шины данных, здесь по идее меньше поток) . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:06 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же InMemory, запросы одинаковые и на выходе профит в логических чтениях и времени выполнения? Мне бы сэкономило времени, заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:12 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу Для понимания может есть у кого примеры? Ну например таблицы заполненные обычные и такие же InMemory, запросы одинаковые и на выходе профит в логических чтениях и времени выполнения? Мне бы сэкономило времени, заранее благодарю. Результаты тестирования: 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:23 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
Интуитивный кейс, например архитектурно неправильно спроектирована система. Идет получение остатков в цикле по номенклатуре(объединение склад, резерв и т.п.). В этом случае если таблицы перевести в InMemory или если сделать их реплику таблиц(если ограничения не позволяют) то данные запросы за счет отстутствия страничного чтения ускорятся, правильно ли я понимаю?(что то мне кажется что скорость увеличится совсем немного) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:24 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
Yasha123 alexeyvg А у таблиц InMemory другая физическая организация хранения, включая хранение блокировок ... какие такие блокировки у InMemory-таблиц? типа их же изобрели, чтобы как раз от блокировок избавиться ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:28 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
alexeyvg, Ну как то хотелось бы "ВАУ" эффекта, типа вот обычные а вот в памяти. Впрочем буду экспериментировать в понедельник. Хотелось бы понять подход, как минимальными усилиями получить максимальный эффект. Пока лишь догадки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:30 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу alexeyvg, Ну как то хотелось бы "ВАУ" эффекта, типа вот обычные а вот в памяти. Впрочем буду экспериментировать в понедельник. Хотелось бы понять подход, как минимальными усилиями получить максимальный эффект. Пока лишь догадки. Вполне можно использовать вместо обычных временных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:36 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
alexeyvg, Ну на вставку не так интересно, тут все же ограничений много. Хотелось бы тесты на чтение. Если там есть эффект то есть мысли куда можно применить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:40 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу alexeyvg, Ну на вставку не так интересно, тут все же ограничений много. Хотелось бы тесты на чтение. Если там есть эффект то есть мысли куда можно применить. В обычных запросах, где джойны, или выборки группы записей, по моему, никаких преимуществ нет. Это в общем достаточно специфическая технология, а не "замена плохого на хорошее". Вот умные люди рассуждают о неприменимости InMemory для чтений: https://dba.stackexchange.com/questions/191300/sql-server-in-memory-table-performace ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:53 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
alexeyvg, Ну так такой я кейс интуитивно приводил, почему бы и нет?, есть много систем с наследуемой архитектурой, которую возможности поменять нет. Если легко можно включить режим InMemory для нужных таблиц, или сделать репликанты(с подменой через view) и если это даст эффект, то почему бы и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:03 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
А вообще некоторый эффект "дежавю", помню переход некоторых систем с DBF на MSSQL. Так вот что забавно там некоторые "запросы" работали быстрее за счет буферизации памяти но при этом не обеспечивая транзакционной целостности, в монопольном режиме работы включался отдельный режим турбо. Проблема получения данных списков в цикле а не единым набором данных - это была боль в переводе на MSSQL. Вот такое складывается впечатление что InMemory это старый DBF на новый лад:) Пока видится применение массовой,параллельной вставки и одиночные запросы в цикле(обязательно с минимальным набором данных, без больших данных). Как только набор данных превышает сетевой или дисковый агрегат - все преимущества теряются. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:31 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
МуМу То есть запросы по таблицам InMemory и обычным будут как правило выполнятся(при отсутствии блокировок по обычным) будут выполнятся одно и то же время?(с учетом чтения страниц, наверное разница есть но какая?) По сути технология применяется для максимального параллелизма для операций вставки-изменений. XTP лучше всего себя показывает для систем с высококонкурентной DML нагрузкой. Да, там за счет отсутствия блокировок как таковых, может получаться достаточно большой прирост. Чудес при этом не бывает - данные могут немного в случае выключения сервера потеряться. По сути отказались от наследия и архитектуры страничных чтений как средство оптимизации работы с диском, достигая при этом высокого параллелизма и более высокого времени отклика. Если используется полная устойчивость то данные даже при потере питания не теряются. Если устойчивость schema_only, тогда риск конечно есть. Но для большинства систем данная технология не выстреливает, в основном годится для многопоточных биллинговых(с небольшими транзакциями) систем с невысокими требованиями к устойчивости.(ну потеряем 10-ть последних транзакций - заново введем). Правильно ли я уловил суть;)? Судя по всему весь в профит в чтении напрямую по хеш индексам(ссылкам), в отличии от издержек с вычитыванием данных по страницам,(наверное в каких то моментах может стать актуален вопрос пропускной возможности шины данных, здесь по идее меньше поток) . Она вообще мало где выстреливает для систем которые изначально не проектировались под использование данной технологии. Количество ограничений у нее с три короба. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:17 |
|
Дошли руки до In Memory,отзовитесь кто использует?
|
|||
---|---|---|---|
#18+
alexeyvg Ну вот, нашёл на SQL.RU :-) оттудаОсновным хранилищем для таблиц In-Memory является основная память, т.е вся память находится в памяти . это прекрасно )) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2019, 00:22 |
|
|
start [/forum/topic.php?fid=46&fpage=77&tid=1686792]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 318ms |
total: | 460ms |
0 / 0 |