Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как будет работать быстрее? / 25 сообщений из 34, страница 1 из 2
09.10.2019, 12:59
    #39873931
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Есть необходимость периодически переливать из таблиц в таблицы данные в общем объёме где-то до 100 млн. записей.

В каком случае это будет работать быстрее:
1) таблицы источника и назначения в одной базе
2) таблицы источника и назначения в одной базе, но разнесены в разные файлы
3) таблицы источника и назначения в разных соседних базах

Во всех случаях подразумевается, что всё происходит на одном и том же сервере.
...
Рейтинг: 0 / 0
09.10.2019, 13:02
    #39873934
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Вопрос звучит примерно так:

"В каком случае будет добраться на автобусе быстрее:

1. Если ехать на заднем сидении
2. Если ехать у окна
3. Если ехать стоя

Во всех случаях подразумевается, что всё происходит в одном и том же автобусе."
...
Рейтинг: 0 / 0
09.10.2019, 13:18
    #39873948
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Не согласен с предложенной Вами аналогией.
Вы хотите сказать, что затраченное время не будет зависеть от выбранного 1 из 3 предложенных вариантов? Не поверю.
...
Рейтинг: 0 / 0
09.10.2019, 13:20
    #39873949
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®,

чтобы было быстрее - используйте физически разные диски и контроллеры источника и получателя. Проследите, чтобы на получателе были диски без "черепицы".
...
Рейтинг: 0 / 0
09.10.2019, 13:20
    #39873950
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®,

Будет зависеть от возможности утилизировать ресурсы, в том числе и дисковые. Если у вас базы все на одном физическом сервере да еще и на одном физическом дисковом массиве, то откуда должен появиться выигрыш?
...
Рейтинг: 0 / 0
09.10.2019, 13:21
    #39873954
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
На самом деле это все БАД и припарки. На хороших серверных хранилищах это что в бок, что сверху. Но на бюджетных разница может быть.
...
Рейтинг: 0 / 0
09.10.2019, 13:24
    #39873957
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Владислав Колосов Но на бюджетных разница может быть.
Это именно наш случай.
...
Рейтинг: 0 / 0
09.10.2019, 13:32
    #39873964
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®,

если льется постоянно, то имеет смысл отдать процессорное ядро под IO через Affinity mask. Также, если есть возможность, секционируйте кластерный индекс таблиц и заливайте секции одновременно в несколько потоков. Потоки легко сделать при помощи Integration Services. Разместите секции на разные диски. Понятно, что если источник будет разбит на секции и также размещен на разных дисках, должен быть эффект.
...
Рейтинг: 0 / 0
09.10.2019, 13:33
    #39873965
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®Есть необходимость периодически переливать из таблиц в таблицы данные в общем объёме где-то до 100 млн. записей.

В каком случае это будет работать быстрее:

4. partition switch

https://sqlrus.com/2018/03/using-switch-on-a-single-partition/
...
Рейтинг: 0 / 0
09.10.2019, 13:35
    #39873967
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
komradAR®Есть необходимость периодически переливать из таблиц в таблицы данные в общем объёме где-то до 100 млн. записей.

В каком случае это будет работать быстрее:

4. partition switch

https://sqlrus.com/2018/03/using-switch-on-a-single-partition/
точнее 1 или 2 + partition switch
...
Рейтинг: 0 / 0
09.10.2019, 13:37
    #39873975
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
komrad,

они же, наверное, копируют, а не переносят?
...
Рейтинг: 0 / 0
09.10.2019, 13:38
    #39873977
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
komrad2 + partition switch
и как же свич перенесет данные из одного файла в другой?
...
Рейтинг: 0 / 0
09.10.2019, 13:52
    #39873994
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Владислав Колосовkomrad,
они же, наверное, копируют, а не переносят?
наверное или нет - автор не указал точно
...
Рейтинг: 0 / 0
09.10.2019, 14:03
    #39874008
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
msLexkomrad2 + partition switch
и как же свич перенесет данные из одного файла в другой?
да, верно, подразумевается другая ФГ (=другой файл) и тогда не получится switch
...
Рейтинг: 0 / 0
09.10.2019, 16:29
    #39874192
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Копируем, а не переносим. Смысл в том, что к одним и тем же данным нужен доступ с разной нагрузкой и разными правами.
...
Рейтинг: 0 / 0
09.10.2019, 17:12
    #39874220
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®Есть необходимость периодически переливать из таблиц в таблицы данные в общем объёме где-то до 100 млн. записей.

В каком случае это будет работать быстрее:
1) таблицы источника и назначения в одной базе

Не достаточно информации. Даже одна и та же таблица может быть размещена в нескольких разных файловых группах (например, если она секционирована, или индексы перенесены на быстрые диски в быстрые файловые группы), которые могут размещаться в разных файлах (а файлы - соответственно на разных дисках, разных контроллерах и т.д.)
AR®2) таблицы источника и назначения в одной базе, но разнесены в разные файлы

Не в файлы, а файловые группы, в которые входят файлы (и не обязательно 1), которые см. выше.
AR®3) таблицы источника и назначения в разных соседних базах

Во всех случаях подразумевается, что всё происходит на одном и том же сервере.
См. предыдущие пункты.

При этом еще не стоит забывать и о быстродействии диска, на котором расположен(ы) файл(ы) лога, т.к. быстродействие вставки, особенно если она не минимально протоколируемая - напрямую зависит от количество операций в секунду (iops), который у вас выдает диск, на котором расположены логи.

Примеры:
1. Данные у вас располагаются на NL-SAS дисках, 7200, в RAID 6. Поверх единого виртуального тома контроллера нарезаны логические диски (созданные в виндовс), по которым вы разбросали файлы, содержащие данные и логи.
В таком случае нет никакой разницы, где, конкретно, на логическом диске, будут лежать логи, данные, на какие файловые группы будет поделена база, будут ли логи лежать на том же диске, что и данные или нет.
Быстродействие будет абсолютно одинаково, и определяться скоростью массива и количеством iops виртуального тома, созданного на контроллере.
2. Данные у вас расположены на логическом диске, расположенном на одном виртуальном томе контроллера, логи расположены на другом логическом диске, расположенном на другом виртуальном томе контроллера, либо на другом контроллере.
Это - оптимальный вариант.
Причем чем менее латентный том, на котором лежат логи - тем быстрее вставка, особенно если это конкурентная вставка в несколько потоков (и особенно - "по записи").
В бд, в которую интенсивно пишут (если нужно выбирать) данные нужно размешать на медленных шпиндельных дисках, а логи - на быстрых ssd, а не наоборот!
Потому что быстродействие изменений в базе напрямую зависит от количества операций в секунду, которую могут выдать диски, на которых лежат логи.

Т.е., прежде чем городить огород с файлами и т.д. - посмотрите на физику, которая под ними лежит.
Например, если у вас подо всё - одна дисковая полка, которая размечена "одним листом", в одно виртуальное пространство, RAID6 или RAID60, а поверх нее вы уже создаете какие то тома, или хуже того, ваши диски - это файлы виртуальной машины на этом большом томе - куда вы не двигайте логи, данные и т.д., вместе или раздельно, боком или раком - разницы не будет ровно никакой.
Разница может возникнуть только если вы получите в свое распоряжение физически разные каналы и физически разные тома (для данных, логов, баз источников, баз приемников).

... физика рулит безоговорочно.
...
Рейтинг: 0 / 0
09.10.2019, 17:41
    #39874234
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®Вы хотите сказать, что затраченное время не будет зависеть от выбранного 1 из 3 предложенных вариантов? Не поверю.Как может быть по другому?

Вы данные копируете из одних секторов диска в другие. Какая разница при этом, что у вас где то в блокнотике отмечено, что первые сектора относятся к накладным Ивана Ивановича, а вторые - к чёрной кассе Петра Петровича?
"Базы" - это всего лишь метаданные, "отметка в блокнотике". А хранятся данные на диске, и неважно, как именно сектора диска описаны в метаданных.

Разница в скорости может появиться, если нужно расширять файл базы, или если делается копирование с одного диска на другой (то есть "2) таблицы источника и назначения в одной базе, но разнесены в разные файлы", но при этом разные файлы размещены на разных дисках).
В общем, если отличаются существенные условия.
...
Рейтинг: 0 / 0
09.10.2019, 17:51
    #39874236
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
alexeyvgКак может быть по другому?

например, базы могут быть в разных моделях восстановления
...
Рейтинг: 0 / 0
09.10.2019, 17:52
    #39874239
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Владислав КолосовНа хороших серверных хранилищах это что в бок, что сверху. Но на бюджетных разница может быть.Как это, разве разница не одинаковая, не зависящая от стоимости?
...
Рейтинг: 0 / 0
09.10.2019, 17:54
    #39874240
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Спасибо всем откликнувшимся, но мне показалось, что никто не учёл, что это будет не копирование файлов средствами ОС, а именно переливка данных между таблицами командами T-SQL insert/select.
...
Рейтинг: 0 / 0
09.10.2019, 17:54
    #39874241
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Yasha123alexeyvgКак может быть по другому?

например, базы могут быть в разных моделях восстановленияДа, есть такое, упустил. :-)

Но вообще нужно предполагать, что все остальные условия одинаковые.
А то так можно дойти до того, что в одной базе таблица-куча без индексов, а в другой с ПК на 10 полей, и с 50 индексами.
...
Рейтинг: 0 / 0
09.10.2019, 17:55
    #39874242
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®Спасибо всем откликнувшимся, но мне показалось, что никто не учёл, что это будет не копирование файлов средствами ОС, а именно переливка данных между таблицами командами T-SQL insert/select.Учли-учли.
...
Рейтинг: 0 / 0
09.10.2019, 18:01
    #39874245
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
AR®Спасибо всем откликнувшимся, но мне показалось, что никто не учёл, что это будет не копирование файлов средствами ОС, а именно переливка данных между таблицами командами T-SQL insert/select.
как раз и учли.
если бы копировалось средствами ОС,
разница была бы, писать на медленный диск или на быстрый
(если базы на разных дисках)
но т.к. копирует именно сервер, то он тупо поднимает ваши данные с диска
и в памяти же пишет на страницы (той или иной) базы.
а в памяти пофиг, чьи это страницы.
а сбросит он эти страницы на диск уже потом, и тоже пофиг, когда.
о коммите вы получите известие, когда в лог все запишется.
и вот тут и есть разница, в какой модели была база-приемник
...
Рейтинг: 0 / 0
09.10.2019, 18:23
    #39874251
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
alexeyvgВладислав КолосовНа хороших серверных хранилищах это что в бок, что сверху. Но на бюджетных разница может быть.Как это, разве разница не одинаковая, не зависящая от стоимости?

Например, если сравнивать SAS и простое SATA решение.
...
Рейтинг: 0 / 0
09.10.2019, 19:43
    #39874282
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как будет работать быстрее?
Yasha123alexeyvgКак может быть по другому?

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


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