2016-04-15 3 views
1

Сегодня я присутствовал на одном из интервью. Интервьюер спросил меня, что есть одна таблица под названием «Исследование». Эта таблица содержит всего 10 записей.Обычный запрос выбора занимает больше времени

Теперь, когда я обращаюсь к таблице , выберите * из исследования . Это займет немного больше времени около 20 сек.

В чем причина?

Я не мог представить себе, как таблица может занять много времени, если она имеет всего 10 записей.

+2

** Блокировка **/чрезвычайно медленная подсистема IO:)/другие транзакции в ожидании/очень медленное сетевое подключение ... – lad2025

+0

Я не мог понять это. Не могли бы вы написать подробно. нет ожидающей транзакции. – NJadon

+1

Это то же самое, что блокировка. Представьте себе, что какой-либо другой запрос получает эксклюзивную блокировку в таблице «Исследование» (например, обновление данных). В прочитанном уровне изоляции вы не можете его прочитать. – lad2025

ответ

1

Вопрос немного неясен и зависит от того, на что они нанимают, а не хорошего. Я предполагаю, что этот вопрос должен был почувствовать вас, чтобы увидеть, что вы будете делать в ситуации. Часто очень конкретные вопросы, подобные этим, связаны с проблемами, которые они лично испытали. Есть много вещей, которые могут вызвать это. Я бы спросил, всегда ли так было? Существуют ли другие таблицы с одинаковой проблемой? Бросьте им обратно. Вопрос о сборке системы, расположении БД и ввода/вывода. Если OTJ и это только началось, моя первая проверка будет заключаться в том, чтобы убедиться, что у них не хватает места на диске. Главным образом потому, что это обычное явление, и если не поймать больше, то в ближайшее время это произойдет неправильно, если их еще нет. Во-вторых, проверьте уровень фрагментации таблицы с помощью DBCC SHOWCONTIG (Table_Name). Если здесь есть некоторые страшные # (общие для таблиц, которые являются кучами), простым решением является удаление и повторное создание таблицы.

0

Это может иметь множество причин:

На стороне одной стороны, «только 10 записей» может быть немного вводит в заблуждение: если каждый из этих записей имеет несколько NVARCHAR (макс) столбцы, это может занять некоторое время. Кроме того, если таблица имеет 100 столбцов, это займет больше времени. Другие аспекты могут быть рассчитаны членами и так далее. И последнее, но не менее важное: если вы запускаете запрос по VPN, это будет значительно медленнее ...

Сказали: если бы вы могли предоставить дополнительную информацию о структуре, контенте, сервере, подключении и т. Д., Это помогите много сузить вашу проблему.

+0

Даже у меня нет большой информации об этом. Это был вопрос интервью. – NJadon

+0

Было бы неплохо, если бы вы могли добавить еще несколько возможностей. – NJadon

Смежные вопросы