SQL Server 2022, Windows 11 Pro, производительность запросов снижается, но не для пользователей Windows 10 ProC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SQL Server 2022, Windows 11 Pro, производительность запросов снижается, но не для пользователей Windows 10 Pro

Сообщение Anonymous »

У меня есть экземпляр разработки SQL Server 2022, работающий с данными тестового клиента. Сосредоточив внимание на одном изолированном запросе, запрос представляет собой простой выбор с указанными столбцами и предложениемwhere является первичным ключом кластерного индекса таблиц:

Код: Выделить всё

SELECT col1, col2, col3, col4, col5
FROM table
WHERE key = @key
В этой таблице меньше 20 строк, а ширина — около 10 столбцов, поэтому она очень маленькая.
Выполнение этого запроса постоянно занимает полсекунды. в коде из приложения .NET Framework 4.8 с использованием Microsoft.Data.SqlClient (я пробовал переключиться на System.Data.SqlClient, но не заметил никаких изменений в производительности).
Напротив, в этом приложении есть запросы длиной во многие тысячи строк, которые выполняются за десятые или тысячные доли секунды. Таким образом, это не все запросы, а лишь несколько избранных, и все затронутые запросы представляют собой одну таблицу, очень простые выборки из очень маленьких таблиц.
Более того, это затрагивает только пользователей Windows 11 Pro. , пользователи Windows 10 Pro этого не испытывают.
Моей первой мыслью было, что это должен быть план объяснения, поэтому я очистил кеш и запустил клиенты на двух разных машинах: 11 и 10 — они оба использовали один и тот же план (в Windows 11 это невозможно воспроизвести в SSMS, я также проверил и сопоставил настройки строки подключения с параметром arithabort и т. д., без изменений, тот же план)Запустил трассировку, и запрос со стороны сервера говорит, что он будет выполнен за 0–2 тысячных, но клиент все равно занимает полсекунды или больше.
Я установил еще один экземпляр SQL Server 2022 на компьютере с Windows 11 Pro, восстановил на нем резервную копию проблемной базы данных и не смог воспроизвести проблему. Установил последнее накопительное обновление на обе машины, перезапустил обе, в поведении никаких изменений.
Проблемная база данных размещена на сервере Windows 2019, который за последние несколько месяцев получил ряд обновлений. . К сожалению, области кода, в которых возникают эти проблемы, используются реже, поэтому я не могу достаточно хорошо изолировать их на временной шкале, чтобы предположить, могло ли обновление повлиять на них или нет.
Я выделил запрос в отдельное тестовое приложение, построил строку подключения так же, проблема повторяется. Судя по трассировке сервера, начало и конец выполнения запроса совпадают с точностью до тысячной доли секунды. На стороне приложения я ставлю секундомер перед выполнением запроса, останавливаюсь сразу после него и затем записываю его. Постоянно вижу полсекунды.
Все это сказано, если я изменю запрос на

Код: Выделить всё

SELECT *
FROM table
WHERE key = @key
Я получаю время 0,003 с или меньше.
И здесь я должен повторить: тот же план выполнения используется машиной, которая выполняет это за тысячные доли секунды. Трассировка сервера говорит, что это мгновенно. Восстановленная копия базы данных на другом сервере не демонстрирует такого поведения, и подавляющее большинство других запросов, гораздо более сложных и в больших таблицах, работают нормально - и это не зависит от конкретного исполняемого файла, поскольку это воспроизводится в другом тесте. Программы. Версии базы данных совпадают, проблем с подключением нет, поведение одинаковое.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ndows-10-p
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»