200 присоединяется на самом деле очень часто случается, если вы попали в EAV trap. Если у вас есть одно лицо с 200 столбцами, для вас 200 штук!
Конечно, SQL Server не имеет проблем с 200 соединениями, но, вполне возможно, он просчитывает объем необходимой памяти. Это особенно вероятно для hash joins
, которые занимаются памятью для лучшей производительности. Таким образом, первым шагом было бы заменить все соединения на объединение циклов, например inner loop join
. Для соединения цикла требуется очень мало памяти.
Если это не сработает, посмотрите план выполнения. Реальный план, вероятно, не сделать его мимо ошибки памяти, но вы можете увидеть предполагаемый план выполнения:
SET SHOWPLAN_ALL ON
Из документации:
Когда SET SHOWPLAN_ALL включена, SQL сервер возвращает выполнение информация для каждого оператора без выполнения , и Transact-SQL заявление не выполняется
Этого гр ould дает представление о том, что SQL планирует делать.
Ugh - Я пытаюсь вспомнить, как использовать Profiler/etc для обзора производительности (в частности, использование памяти - 2 ГБ очень мало для сервера, особенно для базы данных) ... –
будет иметь базу данных, что этот хранилище данных основанный на использовании [модели значения атрибута объекта] (http://en.wikipedia.org/wiki/Entity-attribute-value_model)? –
Ух, купите больше памяти – HLGEM