Как выбрать большие данные из SQL Server 2008 R2? - PullRequest
0 голосов
/ 22 февраля 2012

Я столкнулся с проблемой выбора больших данных из SQL Server.У меня есть представление с 200 столбцами и 200 000 строк.И я использую представление для индексации Solr.

Я пытался выбрать данные с подкачкой, но это заняло много времени (более 6 часов).Сейчас я выбираю без пейджинга, и это занимает 1 час.Но SQL Server занимает много памяти.

Каков наилучший метод или подход для выбора больших данных в таких ситуациях из SQL Server 2008 R2?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Я бы посоветовал взглянуть на ваш план выполнения.Посмотрите на свойства в самом первом операторе и посмотрите, есть ли у вас «Достаточно хороший план найден» или тайм-аут.Если это последнее, у вас может быть очень сложное представление или вы можете вкладывать представления (представление, вызывающее представление).Посмотрите, что вы можете сделать, чтобы упростить запрос, чтобы дать оптимизатору возможность создать хороший план выполнения.

0 голосов
/ 22 февраля 2012

200 тыс. Строк не так уж много и определенно не должны занимать 6 часов, даже 1 час. Я не понял, если проблема заключается в действительном выборе или доведении результата до приложения. Я бы порекомендовал запустить select с NOLOCK, чтобы игнорировать блокировки, возможно, к вашей таблице обращаются другие процессы, когда вы выполняете запрос

SELECT * FROM TABLE WITH(NOLOCK)

Если проблема заключается в переносе данных в приложение, вам необходимо предоставить более подробную информацию о том, как вы это делаете

...