Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение промежуточных данных запроса 
V
    Опции темы
Severyanin
Дата 19.8.2015, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



Добрый день. Возникла необходимость получения промежуточных данных запроса. Например, у меня есть несколько таблиц и запрос, который делает выборку из них с помощью JOIN. В результате я получаю готовый набор данных. Сейчас у меня задача написать функциональные тесты на такие запросы, соответственно, мне нужно подготовить фикстуры для них и заливать в них всю текущую информацию из таблиц я не могу. Значит, мне нужно каким-то образом получить промежуточные результаты для каждого из подзапросов, чтобы знать, какую часть данных заливать в фикстуры. Примерно что-то вроде explain analyse. но чтобы вместо метрик на каждую операцию выдавала подмножество результатов. Сталктвался ли кто-нибудь с таким инструментом?
Спасибо


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Akina
Дата 19.8.2015, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



А что, подзапросы - недетерминированные?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Severyanin
Дата 19.8.2015, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



Часть подзапросов я могу выделить, но часть либо без JOIN выжают все данные, либо с ними выдают пустой результат. Пытаюсь сейчас все это выполнять руками. Думал, что возможно есть для этого что-то вроде EXPLAIN ANALYSE, только чтобы оно показывало не бенчмарки, а данные, чтобы не перелопачивать кучу таких запросов вручную, что будет довольно долго


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Akina
Дата 19.8.2015, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Такого не бывает. Просто потому, что промежуточные рабочие данные при выполнении запросов как правило не представимы в виде наборов записей. Да и по сути таковыми не являются.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Severyanin
Дата 20.8.2015, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



Понятно, спасибо. Тимлид наш просто говорил о подобной тулзе для MsSQLServer, вот я и начал искать

Добавлено через 1 минуту и 31 секунду
Цитата(Akina @ 19.8.2015,  16:53)
Такого не бывает. Просто потому, что промежуточные рабочие данные при выполнении запросов как правило не представимы в виде наборов записей. Да и по сути таковыми не являются.


Не мог бы ты еще поделиться ссылкой на более подробную инфу


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
Akina
Дата 20.8.2015, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(Severyanin @  20.8.2015,  06:49 Найти цитируемый пост)
Не мог бы ты еще поделиться ссылкой на более подробную инфу 

Специально никогда не заморачивался на этом вопросе. Если тебя это интересует - начни с углублённого описания планов выполнения запросов и ищи сведения о том, как программно реализуются те или иные методы связывания, отбора, группировки и сортировки, т.е., например, как принятое решение оптимизатора использовать, ну, скажем, nested loop для связывания, трансформируется в программный код его выполнения. Не убеждён, что удастся найти информацию такой глубины для MS SQL, скорее надо искать её для серверов с открытым кодом (например, для MySQL) - принципы везде одни и те же, просто глубина проработки и вариабельность разная.

Цитата(Severyanin @  20.8.2015,  06:49 Найти цитируемый пост)
Тимлид наш просто говорил о подобной тулзе для MsSQLServer

Думаю, эта тулза (если таковая существует, в чём я пока не убеждён) выполняет самостоятельный парсинг запроса и отдельно запрашивает выполнение субструктур, которые ей удалось выделить из текста запроса.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1226 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.