Каков самый быстрый способ сделать это:
Что я делаю сейчас:
Я получаю около 60k-75k строк, импортированных в секунду, чего недостаточно, но довольно близко. Я хотел бы поразить 250 000 рядов.
Пока ничего не используется. Я получаю 20-процентные блоки «сетевого ввода-вывода», имеют одну базовую 80-процентную загрузку процессора. Диски пишут 7mb-14mb, в основном бездействуют. Средняя длина очереди на RAID 10 из 6 хищников равна 0,25.
Кто-нибудь знает, как ускорить это? Более быстрый сервер (пока он виртуальный, 8 ГБ оперативной памяти, 4 ядра, физический диск для передачи данных).
Добавление некоторых пояснений:
Может ли вертикальное разбиение помочь, например, байтом (tinyint), который разделял бы юниверс инструмента, например, на 16 таблиц, а я, таким образом, делал до 16 вставок одновременно? Поскольку на самом деле данные поступают из разных обменов, я могу сделать раздел на обмен. Это было бы естественное поле разделения (которое на самом деле является инструментом, но я мог бы дублировать эти данные здесь).
Еще несколько пояснений: скорость еще выше (90k), теперь явно ограничена сетью IO между машинами, что может быть переключением VM.
Теперь я делаю соединение на 32 тыс. Строк, размещаю временную таблицу, вставляю в нее с помощью SqlBUlkdCopy, ТОЛЬКО использую ОДИН SQL-оператор для копирования в основную таблицу - сводит к минимуму время блокировки в главной таблице.
В большинстве случаев время ожидания остается в сети IO. Кажется, я сталкиваюсь с проблемами, когда VM мудрый. Переместится на физическое оборудование в следующие месяцы;)
Если вы управляете 70k строк в секунду, вам пока очень повезло. Но я подозреваю, что это потому, что у вас очень простая схема.
Я не могу поверить, что вы спрашиваете об этой нагрузке
Сеть и ЦП совместно используются, IO ограничено: вы не можете использовать все ресурсы. Любая статистика загрузки, которую вы видите, не очень полезна. Я подозреваю, что сетевая нагрузка, которую вы видите, является трафиком между двумя виртуальными серверами, и вы будете привязаны к IO, если вы разрешите это
Прежде чем продолжить, прочитайте 10 уроков от 35 тыс . Т / с . Он не использовал виртуальную коробку.
Вот что я сделал бы, не предполагая возможности SAN и DR, если вы хотите увеличить объемы.
Для справки, наша максимальная нагрузка составляет 12 миллионов строк в час (16 ядер, 16 ГБ, SAN, x64), но у нас есть сложность в нагрузке. Мы не в состоянии.