У меня странная проблема - когда я запрашиваю таблицу SQL с более чем 9000 строками, SQL случайным образом отключается с какой-то несвязанной ошибкой.
1.) Что я имею в виду под случайно отключается: В среднем это происходит примерно на каждый четвертый или пятый запрос (но не обязательно). Если я закажу по какой-то дате, более вероятно, что запрос не удастся, если порядок не будет применен, менее вероятно, что запрос завершится ошибкой. В SQL MGMT Studio на нижней панели инструментов появляется значок отключения, возвращаются только несколько строк (но не все). Если я запрашиваю таблицу с менее чем 9000 строк или если я ограничиваю количество возвращаемых строк (например, с помощью TOP), запрос не потерпеть поражение.
2.) Что я имею в виду под несвязанная ошибка:
An error occurred while executing batch. Error message is: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
или
An error occurred while executing batch. Error message is: Internal connection fatal error.
Данные в порядке (даты находятся внутри разрешенного интервала). Запросы не выполняются не только из SQL MGMT Studio, но и из кода. В SQL Profiler все выглядит нормально. Сервер SQL работает на другом сервере внутри локальной сети, сервер DEV (с которого я выполняю запросы) виртуализирован на моем ПК (также внутри той же локальной сети).
У моих коллег, которые подключены к той же базе данных со своих машин, проблем не возникает.
Мы подозреваем, что проблема связана с сетью на моей машине, но не можем ее найти.
Заранее спасибо!
Наш админ выяснил, что проблема в Легковесный фильтр DNE. Если этот монстр отключен, все работает как положено (никаких случайных отключений со странными ошибками).
Вы можете отключить его, если зайдете в Панель управления / Центр управления сетями и общим доступом / Изменение настроек надстройки. Щелкните правой кнопкой мыши свое сетевое устройство и выберите Свойства. Отменить выбор Легковесный фильтр DNE.
Не могу дать вам однозначного ответа, но кое-что я бы проверил:
Убедитесь, что на самом сервере базы данных нет сообщений об ошибках (проверьте журналы событий). Я думаю, это маловероятно, учитывая, что вы сказали, что это хорошо сработало для ваших коллег.
Используете ли вы тот же драйвер (такую же или более позднюю версию) для подключения к вашим коллегам?
Есть ли проблема с вашим основным сетевым подключением? Как и вы, я склонен считать, что это наиболее вероятный виновник. Если есть, то вы можете увидеть свидетельство этого в журнале системных событий на вашем (хосте) компьютере или для виртуальной машины. Вы также можете попробовать следующее в окне командной строки ping -l 65500 server
где «server» - это имя вашего сервера базы данных и посмотрите, не выпадают ли какие-либо пакеты. Если они это сделают, то это ваша сеть.