Длинные времена запросов - PullRequest
4 голосов
/ 30 июня 2011

У меня есть таблица с 23,5 миллионами строк и 20 столбцами. Я обновил таблицу, чтобы установить для одного из столбцов значение null. Этот запрос занял час. Конечно, у меня нет удивительно быстрого сервера баз данных, но нормально ли это время обновления? У меня не было индекса в этой таблице, когда я запустил обновление. Сколько бы это помогло?

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 30 июня 2011

Это, безусловно, приемлемое время для количества строк на сервере базы данных, тем более что вы сказали, что это не так быстро. Если бы у вас был индекс, это бы не помогло. Индексы используются, чтобы помочь серверу баз данных быстрее находить конкретные записи.

3 голосов
/ 30 июня 2011

Учитывая, что обновлены ВСЕ строки, индекс не помог бы ни одной.

Были ли чтения одновременно? Обновления вызывают блокировку на уровне строк, даже если они кратковременны, могут вызвать большой трафик и ожидание в журнале транзакций.

0 голосов
/ 24 марта 2012

Вместо обновления и установки столбца в ноль, вы можете удалить столбец и повторно добавить его как обнуляемый. По моему опыту, это во много раз быстрее, чем обновлять и устанавливать в каждой строке значение NULL в этом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...