2016-04-07 1 views
0

У меня есть таблица ABC с общим количеством записей около 100000 до 150000. Я хочу получить все записи со всеми столбцами в течение 10-15 секунд. Есть ли такая возможность?Улучшение производительности инструкции select без WHERE и JOIN

Я уже пробовал использовать временную или временную таблицу, но загрузка занимает 47 секунд.

DECLARE TABLE TABLE(Business varchar(1000), Practice varchar(1000), 
Location varchar(1000), ProviderName varchar(1000), 
InsuranceName varchar(200), CustName varchar(100), ChartNo varchar(200), 
ClaimId bigint, ClaimSubmissionDate varchar(100), DOS DateTime, 
Modifiers varchar(200), CPT varchar(200), CPTCat varchar(1000), 
Unit varchar(200), chargeamount int, chargepostingdetailid bigint) 
+3

Получить более быстрое оборудование ... – jarlh

+0

Oh! Спасибо чувак! Но кроме оборудования, есть ли какая-то возможность? 30 секунд? –

+0

Покажите нам определение таблицы, данные таблицы образца и т. Д. Обратите внимание, что это, вероятно, проблема передачи большого количества данных, что немного сложно ускорить. (Размер буфера и т. Д. Может улучшить ситуацию.) – jarlh

ответ

0

Ну, так как ваш вопрос в данный момент весьма туманно .... Я бы предложил разделить запрос в параллельных запросов (при условии, что горлышко бутылки НЕ на базе).

Использование Parallel.For с соединением с ConcurrentBag.

Каждая «петля» загружает пример 5000 или около того, «играйте» с цифрами и посмотрите, есть ли разница.

+0

Спасибо за ваш ответ. Я согласен с вами в использовании Параллелизма. Но я должен использовать этот SQL-запрос для отчета SSRS. Это главная проблема. Потому что я должен передать все эти данные в SSRS, и SSRS будет делать разбиение на страницы, а затем отчет будет присутствовать. –

+0

Когда я говорю «Параллельный», нужно загрузить все записи от 100000 до 150000, но каждый запрос загружает только определенную сумму, а затем добавляет каждый результат запроса (например, разбитый на страницы запроса) в окончательный список (concurrentBag). Когда все будет загружено, передайте полный список вашему потребительскому объекту. – Dryadwoods

0
  1. Запустите свой клиент на серверной машине. Вы можете использовать сеанс RDP, если вам нужна SQL Server Management Studio или просто запустите приложение на сервере.

  2. Используйте общую память для сетевого протокола в подключении к базе данных. См. Здесь: Fastest SQL Server protocol?

Смежные вопросы