SELECT [все столбцы] занимает 1:02 для таблицы с 163 020 строками - PullRequest
0 голосов
/ 19 февраля 2019

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

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

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

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

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

enter image description here

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

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

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

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

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

SELECT * INTO #sometemptable FROM MyTable

, в то время как этот запрос занимает от 00:20 до 01: 40

SELECT * FROM MyTable
0 голосов
/ 19 февраля 2019

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

...