В Linux говорится, что модуль ядра имеет неизвестный символ, но другой загруженный модуль обеспечивает его

Вероятно, в некоторых базах данных OLTP большого объема лучше не удалить данные вообще. Разработчики могут создать поле "IsDeleted" или что-то как этот. Но это - соображение для будущего.

Что касается ответа Вы приняли. Я не полагаю, что это будет работать быстрее затем простое, УДАЛЯЮТ подход, если Вы скопируете 100 МБ данных. Это будет очень большая нагрузка и большой рост журнала транзакций. Обычно это зависит от того, сколько из тех данных хотели бы Вы оставаться нетронутым после того, как удаляют, будет закончен.

То, что я рекомендовал бы,

1) Если можно выполнить запрос в неактивные часы, необходимо выпустить эксклюзивную блокировку таблицы и затем удалить записи. это сэкономит SQL-сервер времени, потратит для распространения блокировок ко многим отдельным строкам

2) если 1-й подход не будет возможен, то удалите блоками, то я соглашусь с John Sansom. Проблемы начинаются, когда существует очень большая транзакция что партия блоков других транзакций активных пользователей... Таким образом, необходимо сделать, удаляют в небольших частях, каждом в его собственной транзакции...

3) Вы могли также временный переключатель прочь (или отбросьте и затем воссоздайте), Прежде/После того, как Удаляют триггеры, и ограничивает (включая внешние ключи) однако существует риск целостности, и этот подход требуют некоторых экспериментов.

AFAIK, отключая/разрешая индексы не улучшит ситуацию, потому что при удалении записей будут "дыры" в индексных деревьях... Таким образом, это может влиять на выполнение следующих SQL-запросов для той же таблицы, и рано или поздно можно хотеть восстановить индексы, однако я никогда не вижу эффекта на то, как индексы (даже когда Вы имеете также, может индексы) могут уменьшиться, скорость удаляют операцию

В большинстве случаев плохая производительность УДАЛЯЕТ, когда индексы не используются Запросом на удаление (можно проверить план запросов), или когда у Вас есть слишком много внешних ключей или тяжелой триггерной логики.

5
задан 19 March 2010 в 07:53
2 ответа

скопируйте .ko's в каталог модуля своего ядра, затем запущенный depmod

0
ответ дан 3 December 2019 в 01:48

У меня была подобная компиляция проблем драйверы 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.

4
ответ дан 3 December 2019 в 01:48

Теги

Похожие вопросы