Доступ: недостаточно места на временном диске ошибка
Я получаю следующую ошибку:
" недостаточно места на временном диске. (Ошибка 3183) "
"Вы пытались выполнить операцию, которая требует больше места, чем доступно на временном диске. Ваше временное расположение на диске основано на переменной среды TEMP DOS, которая была установлена при запуске системы."
Я использую Access 2007 в качестве переднего плана. База данных находится на SQL Server 2008.
Это происходит, когда я использую форму, источником записи которой является SQL-запрос и am переход к определенной записи с помощью навигационного элемента управления. В таблице около полумиллиона записей.
Я на XP SP3 с 4 ГБ оперативной памяти и есть 1 ГБ бесплатно.
1 ответ:
Вы, скорее всего, столкнетесь с ограничением в 2 ГБ для таблиц MS Access. Возможно, во временной таблице, которая создается/используется во время запроса.
Это, вероятно, вызвано любыми соединениями, которые вы имеете в своем запросе, которые имеют тенденцию умножать данные. И с миллионом строк, все, что вам нужно сделать, это умножить его на 2K данных в строке, чтобы достичь этого предела)
Вы можете решить эту проблему несколькими способами.
- Вы можете переместить самый большой ограничитель в предложении where в конец (насколько я помню, SQL выполняется снизу вверх).
- Вы можете упростить запрос
- можно разбить запрос на подзапросы, каждый из которых имеет собственное предложение where, а затем выполнить объединение результатов.
Вы также можете заставить запрос выполняться на стороне SQL Server; что, я думаю, происходит по умолчанию, но может быть сорвано неэффективным запросом (например, вызовом функции, которая возвращает varchar в предложении where)
Comments