Вы корректны, значение по умолчанию является моим именем asc. Единственным путем я нашел для изменения порядка сортировки это для создания таблицы данных из набора FileInfo.
Вы можете, тогда использовал DefaultView из таблицы данных, и отсортируйте каталог с.Sort методом.
Это, вполне включают и довольно медленный, но я надеюсь, что кто-то отправит лучшее решение.
Если плохой план кэширован, то такой же плохой план следует использовать и из SSMS, если вы запустите тот же запрос с идентичными аргументами.
Нет лучшего решения, чем поиск основная причина. Попытка взглянуть на различные настройки в надежде, что это решит проблему, никогда не даст вам уверенности, что она действительно исправлена. Кроме того, в следующий раз в системе может возникнуть другая проблема, и вы подумаете, что та же проблема возникнет снова, и примените плохое решение.
Лучше всего попытаться зафиксировать плохой план выполнения. Класс событий Showplan XML Событие профилировщика - ваш друг, вы можете получить план вызова ADO.Net. Это очень тяжелое событие, поэтому вам следует подключать профилировщик и фиксировать его только тогда, когда проблема проявляется, в коротком сеансе.
Статистика ввода-вывода запросов также может помочь. События RPC: Completed и SQL: Batch Completed включают в себя операции чтения и записи, поэтому вы можете сравнить количество логических операций ввода-вывода, выполненных при вызове ADO.Net с вызовом SSMS. Большая разница (для одного и того же запроса и параметров) указывает на разные планы. sys.dm_exec_query_stats - еще одно направление исследования. Вы можете найти там свои планы запросов и проверить статистику выполнения.
Все это должно помочь с уверенностью установить, является ли проблема плохим планом или чем-то еще, для начала.
dm_exec_query_stats - еще одно направление расследования. Вы можете найти там свои планы запросов и проверить статистику выполнения.Все это должно помочь с уверенностью установить, является ли проблема плохим планом или чем-то еще, для начала.
dm_exec_query_stats - еще одно направление расследования. Вы можете найти там свои планы запросов и проверить статистику выполнения.Все это должно помочь с уверенностью установить, является ли проблема плохим планом или чем-то еще, для начала.
Возможно ли, что ваш запрос ADO.NET выполняется после того, как система была занята другими делами, так что необходимые данные больше не находятся в ОЗУ? А когда вы тестируете SSMS, да?
Вы можете проверить это, выполнив следующие две команды из SSMS перед запуском запроса:
CHECKPOINT
DBCC DROPCLEANBUFFERS
Если это приводит к медленному запуску запроса SSMS, то есть некоторые уловки вы можете играть на стороне ADO.NET, чтобы она работала быстрее.
У меня та же проблема. Единственный способ исправить это - включить АРИТАБОРТ. но, к сожалению, когда это случится снова, я должен установить АРИТАБОРТ ВЫКЛЮЧЕН.
Понятия не имею, при чем тут АРИТАБОРТ, но это работает, у меня эта проблема уже более 2 лет и до сих пор не решена. Базы данных, с которыми я работаю, превышают 300 ГБ, так что, может быть, это проблема с размерами....
Ближе всего к решению этой проблемы я подошел с более ранней заметки. Google Groups post
Дайте мне знать, если вам удалось полностью решить эту проблему, так как она очень разочаровывает!