Вероятно, в некоторых базах данных OLTP большого объема лучше не удалить данные вообще. Разработчики могут создать поле "IsDeleted" или что-то как этот. Но это - соображение для будущего.
Что касается ответа Вы приняли. Я не полагаю, что это будет работать быстрее затем простое, УДАЛЯЮТ подход, если Вы скопируете 100 МБ данных. Это будет очень большая нагрузка и большой рост журнала транзакций. Обычно это зависит от того, сколько из тех данных хотели бы Вы оставаться нетронутым после того, как удаляют, будет закончен.
То, что я рекомендовал бы,
1) Если можно выполнить запрос в неактивные часы, необходимо выпустить эксклюзивную блокировку таблицы и затем удалить записи. это сэкономит SQL-сервер времени, потратит для распространения блокировок ко многим отдельным строкам
2) если 1-й подход не будет возможен, то удалите блоками, то я соглашусь с John Sansom. Проблемы начинаются, когда существует очень большая транзакция что партия блоков других транзакций активных пользователей... Таким образом, необходимо сделать, удаляют в небольших частях, каждом в его собственной транзакции...
3) Вы могли также временный переключатель прочь (или отбросьте и затем воссоздайте), Прежде/После того, как Удаляют триггеры, и ограничивает (включая внешние ключи) однако существует риск целостности, и этот подход требуют некоторых экспериментов.
AFAIK, отключая/разрешая индексы не улучшит ситуацию, потому что при удалении записей будут "дыры" в индексных деревьях... Таким образом, это может влиять на выполнение следующих SQL-запросов для той же таблицы, и рано или поздно можно хотеть восстановить индексы, однако я никогда не вижу эффекта на то, как индексы (даже когда Вы имеете также, может индексы) могут уменьшиться, скорость удаляют операцию
В большинстве случаев плохая производительность УДАЛЯЕТ, когда индексы не используются Запросом на удаление (можно проверить план запросов), или когда у Вас есть слишком много внешних ключей или тяжелой триггерной логики.
скопируйте .ko's в каталог модуля своего ядра, затем запущенный depmod
У меня была подобная компиляция проблем драйверы Advantech. Действующая фраза здесь не является действительно "никакой версией символа".
Раздел 7 из http://lxr.linux.no/#linux+v2.6.33/Documentation/kbuild/modules.txt предоставляют подробную информацию об управлении версиями модуля. Раздел 7.3 особенно интересен. Простое решение для меня состояло в том, чтобы только всунуть строку KBUILD_EXTRA_SYMBOLS (как описано запускающийся в строке 526 из modules.txt выше). В Вашем случае Вы могли, вероятно, просто добавить строку как
KBUILD_EXTRA_SYMBOLS: = [driver_root]/kernel/core/Module.symvers
к вершине [driver_root]/kernel/USB-4761/Makefile.