Это взяло когда-то для понимания проблемы. Исправьте меня, если я неправ.
У Вас есть база данных, где Вы загружаете данные только для одних данных, и пользователи просят отчеты об этих данных. Но во время процесса импорта (сделанный только один раз в день) блокируются отчеты. Добавляемый объем данных каждый день составляет 2 ГБ. И Вы хотите оптимизировать этот процесс.
Каков ВЫБОР @@ ВЕРСИЯ? Я знаю, что Вы используете 2008, но мне нужна информация о выпуске также. Вы добавляете 2 ГБ данных или усекаете и загружаете только 2 ГБ каждый день? Сколько памяти доступно на поле? Можно ли совместно использовать информацию от ниже запроса также.
-- Isolate top waits for server instance since last restart or statistics clear
WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK'
,'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE'
,'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT'
,'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT'
,'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP'))
SELECT W1.wait_type,
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE); -- percentage threshold
SQL Server очень мощен и может получить большую производительность от него при корректном использовании. У нас нет достаточной информации для создания решения теперь. Вы, возможно, нуждаетесь в РЕПЛИКАЦИИ или можете быть Вами, может просто улучшить производительность путем настройки производительности, добавления соответствующих индексов и броска небольшой памяти также. Поэтому добавьте больше деталей.
Я бы предложил использовать тот же порядок, что и другие массивы, потому что они, скорее всего, были созданы в тех же условиях, что и рассматриваемый массив.
Не забывайте всегда «--assume-clean» при сборке или создании - вы, вероятно, знаете это достаточно хорошо, но стоит упомянуть еще раз.
В идеале вы должны фактически работать с образами (dd) исходных дисков, а не с самими дисками. Я понимаю, что все не всегда идеально: -)
Наконец, если можно, «mount -o ro», если можно, просто еще один уровень безопасности «Не пишите на диски, пожалуйста»: -)