SELECT [все столбцы] занимает 1:02 для таблицы с 163 020 строками

Это база данных SQL Azure. Это маленький столик, правда. Я не делаю SELECT * FROM. Я называю все столбцы в таблице.

Таблица имеет PK с кластерным индексом. Он также имеет некластеризованный индекс с двумя столбцами.

Первоначально инструкция SELECT выполнялась за 39 секунд. Но после того, как я сделал REORGANIZE для обоих индексов, теперь это занимает 1:02. Итак, я сделал все намного хуже. (К счастью, это таблица DEV.)

Как я могу по крайней мере вернуться к 39 секундам, с которых я начал? И что еще я должен искать, чтобы объяснить медлительность?

Если это поможет, вот план выполнения.

Я также запустил SQL Profiler и запустил трассировку, но она вернула столько данных, и, честно говоря, я не знаю, что я ищу в результатах.

Вот результат SELECT @@Version

Microsoft SQL Azure (окончательная первоначальная версия) - 12.0.2000.8
3 января 2019 00:14:33
Авторское право (C) 2018 Microsoft Corporation

2 ответа

Возможно перестроить индекс? Создание индекса покрытия, содержащего все выбранные столбцы, позволит выполнить запрос мгновенно. Кроме того, есть ли в каких-то столбцах очень большие капли? Я бы также посмотрел на производительность дискового ввода-вывода. Это кажется необычайно медленным.

Что касается комментария BoCoKeith, я думаю, что задержка в сети, кажется, проблема. Это пятнистый и не соответствует. Но этот запрос будет последовательно выполняться в 00:00 секунд:

SELECT * INTO #sometemptable FROM MyTable

Хотя это занимает от 00:20 до 01:40

SELECT * FROM MyTable
Другие вопросы по тегам