0 / 0 / 0
Регистрация: 19.01.2017
Сообщений: 20
|
|
1 | |
ускорить работу запроса24.01.2017, 10:49. Показов 2073. Ответов 3
Метки нет (Все метки)
Добрый день!
сделал рабочий запрос, но время его выполнения занимает около трех с половиной минут при обработке 25 строк. как его ускорить? дана таблица с тремя колонками [Дата время], [название],[значение]. содержание таблицы выглядит примерно так Дата | название | значение| 24.01.2017 00:00 | телевизор | 236 24.01.2017 01:00 | телевизор | 237 24.01.2017 02:00 | телевизор | 238 24.01.2017 00:00 | тапок | 126 24.01.2017 01:00 | тапок | 129 24.01.2017 02:00 | тапок | 142 24.01.2017 00:00 | пятница | 8 24.01.2017 01:00 | пятницам | 9,1 24.01.2017 02:00 | пятницам | 9,2 нужно получить Дата | телевизор | тапок | пятница 24.01.2017 00:00 | 1 | 3 | 1,1 24.01.2017 01:00 | 1 | 13 | 0,1 помимо конкатенации (из строк сделать столбцы) строк нужно еще и из одного часа отнять предыдущий. Решил использовать временную таблицу #test и для вычисления каждой строки прибегаю к использованию циклов в котором выполняю вычитание из значения на дату с датой -1 час и записываю во временную таблицу. код таков declare @startdate datetime, @enddate datetime, @телевизор сreate table #test (datetime datetime, телевизор float, тапок float, пятница float) set @startdate = '24.01.2017 00:00' set @enddate = '25.01.2017 00:00' while (@startdate <= @enddate) begin set @телевизор = (select distinct b.значение - a.значение from таблица a, таблица b where a.название = 'телевизор ' and a.datetime = @startdate and b.название = 'телевизор ' and b.datetime = DateAdd(hour,1,@StartDate)) set @тапок = (select distinct b.значение - a.значение from таблица a, таблица b where a.название = 'тапок ' and a.datetime = @startdate and b.название = 'тапок ' and b.datetime = DateAdd(hour,1,@StartDate)) set @пятница= (select distinct b.значение - a.значение from таблица a, таблица b where a.название = 'пятница' and a.datetime = @startdate and b.название = 'пятница' and b.datetime = DateAdd(hour,1,@StartDate)) insert into #test (datetime,телевизор , тапок , пятница ) values (@startdate, @телевизор , @тапок , @пятница ) Set @StartDate = DateAdd(hour,1,@StartDate) end select * from #test все имена и названия изменены )))) и количество результатирующих строк около 8, а не 3. через представление думал сделать (VIEW) но оно не работает со временными таблицами и не думаю что ускорит работу запроса. Заранее благодарен.
0
|
24.01.2017, 10:49 | |
Ответы с готовыми решениями:
3
Помогите ускорить выполнение запроса Ускорить работу с формированием запроса Как ускорить работу? ускорить работу скрипта |
3550 / 2124 / 752
Регистрация: 02.06.2013
Сообщений: 5,152
|
||||||
24.01.2017, 11:58 | 2 | |||||
1
|
0 / 0 / 0
Регистрация: 19.01.2017
Сообщений: 20
|
|
24.01.2017, 13:49 [ТС] | 3 |
ух ты, спасибо, буду разбирать неизвестные мне функции. но пивот не реализован в скуле 2000.
0
|
3550 / 2124 / 752
Регистрация: 02.06.2013
Сообщений: 5,152
|
||||||
24.01.2017, 14:17 | 4 | |||||
Labotryas, версию сервера нужно сообщать, когда вопрос задаете.
Для 2000-го:
0
|
24.01.2017, 14:17 | |
24.01.2017, 14:17 | |
Помогаю со студенческими работами здесь
4
23 Способа Ускорить Работу 1с 8.2 - 3 Ускорить работу с файлами Ускорить работу сайта Ускорить работу метода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
|
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта
В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
|
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
|
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
|
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|