Получение больших данных: sqlconnection и сжатие

#c# #.net #sql-server-2008 #ado.net

#c# #.net #sql-server-2008 #ado.net

Вопрос:

Мне нужно получить около 50-100 тысяч записей из таблицы. Два поля содержат очень длинные строки. Поле 1 содержит до 2048 символов, а поле 2 — до 255.

Получение только этих двух полей, 50 тыс. строк, занимает около 120 секунд. Есть ли способ использовать сжатие или как-то оптимизировать извлечение этих данных? Я использую адаптер данных для заполнения таблицы данных.

Примечание: это просто оператор select, без предложения where .

Комментарии:

1. Какие индексы существуют в этой таблице? Сколько времени занимает запрос, когда вы выполняете его через SSMS?

2. Как вы используете эти записи? Я думаю, что лучше всего изменить способ обработки, чтобы вам не нужно было извлекать все записи в одном запросе. Лучший способ сделать это будет зависеть от того, что вы делаете с записями. Вы добавляете немного деталей?

3. Записи необходимо удалить и обработать, но они зависят от данных из других строк

Ответ №1:

Простой ответ: НЕ ИЗВЛЕКАЙТЕ от 50.000 до 100.000 строк. Точка. Массовые передачи всегда требуют времени, а сжатие создает большую нагрузку на процессор. Я все еще должен прийти к случаю, когда извлечение такого количества данных за пределы чистой передачи данных является целесообразным предложением — в большинстве случаев это признак плохой архитектуры.

Комментарии:

1. Я 1 это. Я попытаюсь найти другой способ.

2. размер данных не коррелирует с архитектурой, поэтому ваше утверждение основано на неверном предположении