1 / 28

Алексей Князев a.knyazev@t-sql.ru http ://t-sql.ru

http://www.EkbIT.Pro. Алексей Князев a.knyazev@t-sql.ru http ://www.t-sql.ru. Высокопроизводительный код T-SQL. Оконные функции. Содержание. Что такое оконные функции Окн а в SQL Server Оптимизация оконных функций Решения на основе T-SQL с использованием оконных функций Заключение

stian
Download Presentation

Алексей Князев a.knyazev@t-sql.ru http ://t-sql.ru

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://www.EkbIT.Pro Алексей Князев a.knyazev@t-sql.ru http://www.t-sql.ru Высокопроизводительный код T-SQL. Оконныефункции

  2. Содержание Что такое оконные функции Окна в SQL Server Оптимизация оконных функций Решения на основе T-SQL с использованием оконных функций Заключение Вопросы?

  3. SQL Server 2012 Что такое оконные функции

  4. Оконные функции • Встречаемые названия • Оконные функции (Window Functions) • Аналитические функции • OLAP-функции • OVER-функции • Впервые появились • Oracle i8 R2 • DB2 7.1 • SQL Server 2005 • Описаны впервые в стандарте ANSI SQL:1999 (OLAP functions) • ANSI SQL:2003 – более 30 аналитических функций • ANSI SQL:2008 • ANSI SQL:2011

  5. OVER() WiKi: Оконными (windows functions) называются функции, которые применяются к наборам строк и определяются посредством предложения OVER. В основном они используются для аналитических задач, позволяя вычислять нарастающие итоги и скользящие средние, определять пробелы и островки в данных, а также вычислять многие другие вычисления. BOL: Окно — это определяемый пользователем набор строк. Оконная функция вычисляет значение для каждой строки в результирующем наборе, полученном из окна.

  6. Типы оконных функций Агрегатные Ранжирующие Аналитические (или распределения) Сдвига …окна – это принцип, поэтому в следующих редакциях стандарта могут появиться новые типы.

  7. Элементы оконных функций Секционирование Упорядочение Кадрирование

  8. SQL Server 2012 Окна в SQL Server

  9. Окна в SQL Server

  10. Оконные функции в SQL Server по типам • Агрегатные • SUM, COUNT, AVG, MAX, MIN, COUNT_BIG, CHECKSUM_AGG, STDEV, STDEVP, VAR, VARP • Ранжирующие • ROW_NUMBER, NTILE, RANK, DENSE_RANK • Аналитические (или распределения) • PERCENTILE_CONT, PERCENTILE_DESC, PERCENT_RANK, CUME_DISC • Сдвига • LAG, LEAD, FIRST_VALUE, LAST_VALUE

  11. Элементы оконных функций Over( ) Over() < Partition By Clause> < Order By Clause> < Frame Clause> Sum(Amount) Over ( ) Partition By EmployeeID Order By Period Desc Rows Between Unbounded Preceding And 2 Following

  12. Кадрирование (Frame Clause) ROWS BETWEEN UNBOUNDED PRECEDING | <n> PRECEDING | <n> FOLLOWING | CURRENT ROW AND UNBOUNDED FOLLOWING | <n> PRECEDING | <n> FOLLOWING | CURRENT ROW

  13. Элементы оконных функций (пример) Sum(Amount) Over ( ) Frame 1 Frame 2 Partition By EmployeeID Frame 3 Order By Period Desc Frame 4 Frame 5 Rows Between Unbounded Preceding And 2 Following Frame 6 Partition By Order by

  14. From Процесс выполнения • Where • Group By • Having • Select • Order By

  15. Производительность оконных функций Подзапрос Оконные функции

  16. Производительность оконных функций Running Total Benchmark

  17. Демонстрация Окна в SQL Server

  18. SQL Server 2012 Оптимизация оконных функций

  19. Оптимизация

  20. Демонстрация Оптимизация оконных функций

  21. SQL Server 2012 Решения на основе T-SQL с использованием оконных функций

  22. Задачи решаемы с помощью оконных функций Последовательности Разбиение на страницы Устранение дубликатов Сведение Возвращение первых N-строк в каждой группе Моды Вычисление нарастающих итогов Максимальное количество параллельных интервалов Упаковка интервалов Нахождение пробелов и островков Медианы Условные агрегаты Сортировка иерархий

  23. Демонстрация Решения на основе T-SQL с использованием оконных функций

  24. Заключение

  25. Заключение • Поддержка оконных функций в SQL описаны в стандарте SQL:1999. С того времени в каждой новой редакции поддержка оконных функций только укреплялась. • Оконные функции позволяют решать множество задач: • Разбиение на страницы • Устранение дубликатов • Возвращение первых N-строк в каждой группе • Вычисление нарастающих итогов • Выполнение операций в интервалах • Нахождение пробелов и островков • Вычисление процентилей • Вычисление режима распределения • Иерархии сортировки • Сведение • Определение новизны • Запросы выглядят более компактно и более читабельно. • Улучшенная производительность для ряда запросов. • Оконные функции хорошо поддаются оптимизации.

  26. Заключение Ещё много функций описанных в стандарте не включены в SQL Server (NTH_VALUE, WINDOWS,EXCLUDE, FILTER, поддержка RANGE реализована не полностью и т.д.) Не поддерживается ключевое слово DISTINCT в функциях агрегирования Требует определённого времени для изучения и понимания как оконные функции работают, т.к. это новая концепция, к которой надо привыкнуть. SQL Server 2014 CTP1 !? 

  27. Q&A Ваши вопросы

  28. Ресурсы • Books Online: • Предложение OVER (Transact-SQL) http://msdn.microsoft.com/ru-ru/library/ms189461.aspx • Наш сайт • http://www.EkbIT.Pro • Мой блог • http://www.t-sql.ru • Книга Ицика Бен-Гана

More Related