Консоль запросов для больших баз данных (БД)

28.06.16

Разработка - Инструментарий разработчика

Самая обычная консоль запросов для толстого клиента, но обладающая некоторыми специальными возможностями для отладки и сверки сложных запросов, которые выбирают большие объёмы данных.
А именно:
-Сохранение результата запроса в файл;
-Возможность выборки из сохраненного файла;
-Замеры времени выполнения отдельных временных таблиц в запросе;
-Подготовка текста запроса к помещению в модуль;
-Проверка запроса на не уничтоженные временные таблицы;

Скачать файлы

Наименование Файл Версия Размер
КонсольЗапросов
.epf 45,31Kb
22
.epf 1.0 45,31Kb 22 Скачать

В последнее время очень регулярно приходится писать\переписывать\дописывать сложные запросы, содержащие в себе море расчётов. Но хуже всего, что данные запросы вытягивают большие объемы данных, и время выполнения порой затягивается на минуты и десятки минут. И тут я оснастил свою консоль инструментами, которые помогают мне с комфортом решать ряд задач. 

1. Например, у меня есть какой-то отчет (запрос), который мне нужно оптимизировать. Я пишу свой, новый запрос. Который работает быстрее. Но мне надо убедиться, что результат идентично правильный. Что делать?

Сначала я беру старый запрос и выгружаю его результат в файл.

А затем то же самое делаю с новым запросом. 

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

 Пример выборки из файлов с ТЗ

 

2. Встречаются мне такие запросы, в которых очень много выборок во временные таблицы, ввиду наличия сложных расчётов и большого количества полей в конечной таблице. Да и сам такие запросы порой вынужден писать.

Когда объем данных вырастает на порядки, такие запросы иногда начинают тормозить.

Чтобы понять, в какой именно части запроса "слабое звено", - запускаем замер. Желательно ограничить в разумных пределах результат выборки, чтобы не ждать по полдня (смотря, конечно, насколько долго выполняется запрос). И получаем в результате время выполнения каждой временной таблицы.

Замер времени выполнения временных таблиц запроса 

3. Подготовка текста запроса к помещению в модуль.

Случается так, что текст запроса очень большой и содержит в себе двойные кавычки. Такие запросы, как правило, быстро в текст модуля не поместишь, если не пользуешься конструктором запроса (ввиду сложности и невозможности восприятия всей последовательной логики текста в конструкторе), для таких целей и реализована простенькая функция подготовки текста к помещению в модуль.

Подготовка текста запроса к помещению в модуль

 

4. В тех же самых длинных запросах, которые растягиваются на тысячи строк, не всегда можно с легкостью визуально отследить - все ли временные таблицы своевременно уничтожаются.

Для этих целей я также сделал кнопочку, которая выдаст Вам список временных таблиц, которые не были уничтожены. Это сэкономит Ваше время и сократит размеры tempdb на SQL сервере. (Для тех, кому невыгодно из-за производительности использовать менеджер временных таблиц).

Проверка на наличие не уничтоженных временных таблиц

Консоль сложные запросы оптимизация сверка

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121599    670    389    

711

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7260    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3499    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177724    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99338    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18102    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28091    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23595    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. vec435 15 30.06.16 09:41 Сейчас в теме
интересно, в каком модуле работает конструкция "Выбрать ... Из [File]"
2. ixilimuse 191 30.06.16 11:04 Сейчас в теме
(1) vec435, Добрый день, если я правильно понял Ваш вопрос, то все прописано в модуле формы консоли.
Перед непосредственным выполнением запроса, я просто ищу в тексте данную конструкцию, разбираю её на 2 компонента: Параметр, ПутьКФайлу.
Затем подменяю данную конструкцию на параметр, в который далее помещаю считанную из файла таблицу значений. И после уже идет стандартный код выполнения запроса, описанный до моего вмешательства))

p.s. Ссори, в публикации не рассмотрел детально данный нюанс.
Данная строка состоит из двух частей, разделяется строкой: "<+>"
То что стоит до разделителя - это то как будет называться параметр, в который будет помещена таблица значений. И из которого собственно будет производиться выборка.
А то что стоит после разделителя - путь к файлу, который был ранее сохранен из этой же консоли (либо с помощью любой своей обработки). Файл должен содержать таблицу значений в формате 1С.
3. necropunk 9 30.06.16 11:11 Сейчас в теме
(2) с файлом идея интересная. А чем не устроила консоль из "Инструментов Разработчика", например?
4. ixilimuse 191 30.06.16 11:40 Сейчас в теме
(3) necropunk, инструменты разработчика мне очень нравятся и я очень уважаю труды создателя :)
Но так сложилось исторически, мою гряду запросов я начал сопровождать в старой, стандартной консоли ещё до того как узнал про "ИР".
Качал ИР, немного смотрел - классно там все. Но в силу привычки и уже настроенного sel файла так и не перешёл тогда.

В день когда публиковал этот пост, в очередной раз скачал свежую версию ИР. Хочу ещё раз пощупать. А то уж чувствую пропускаю много приятного мимо))
5. necropunk 9 30.06.16 12:54 Сейчас в теме
(4) я сам качал, щупал, никак не мог приноровиться, а потом столкнулся с базой, куда она интегрирована - прелесть просто, теперь без нее - никуда.
ixilimuse; +1 Ответить
6. tormozit 7136 01.07.16 07:24 Сейчас в теме
Продолжаешь изобретать велосипеды? =)
zqzq; myjob1c; DrAku1a; Il; h00k; +5 Ответить
7. ixilimuse 191 01.07.16 08:23 Сейчас в теме
(6) tormozit, иногда случается, увы :D
Даже оправдываться не буду))))
8. echo77 1868 04.07.16 05:43 Сейчас в теме
Сравнить результаты выполнения запросов проще используя механизм сравнения файлов и сохранения результата в таблицу, или текстовый файл. Правда для этого желательно результаты отсортировать единым образом.
Оставьте свое сообщение