Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Такой запрос на этих данных примерно в 10 раз эффективнее, чем этот же запрос, выполненный в «старом стиле»:

SELECT *

 FROM sample s1

 WHERE ID_Trans in

  (

   SELECT top 2 ID_Trans

    FROM sample s2

    WHERE s1.ID_Customer = s2.ID_Customer

    ORDER BY amount DESC

  )

Более того, разница в скорости будет ощутимо расти с увеличением количества данных в таблице, поскольку в первом случае алгоритм довольно прост – внутренним запросом нумеруются записи внутри групп, практически за одну сортировку, а затем фильтром во внешнем запросе отсекаются все лишние записи. Во втором же случае, внутренний подзапрос выполняется заново, для каждой записи в таблице. Все это очень хорошо видно на планах запросов. На втором плане количество ожидаемых выполнений подзапроса – пятнадцать, так как в тестовой табличке 15 записей.

План запроса с аналитической функцией:

Операция                 Стоимость Количество

----------------------------------------------------------

 |--Filter(WHERE:([Expr1003]<(3)))    0.022873  1

  |--Sequence Project(...)       0.022866  1

   |--Segment             0.022866  1

    |--Segment            0.022866  1

     |--Sort(ORDER BY:(...))     0.022864  1

      |--Clustered Index Scan(...) 0.006423  1

План запроса без использования аналитической функции:


Рекомендуем скачать другие рефераты по теме: казахстан реферат, курсовики скачать бесплатно.


Категории:




Предыдущая страница реферата | 1  2  3  4  5  6  7 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я


Полезные заметки

  •