169 похожих чатов

Привет, каким образом можно посмотреть все данные, затрагиваемые запросом? К

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

18 ответов

61 просмотр

Можно посмотреть sys.syscomments лайком по полю text

а нафига тебе их глядеть?

Gopneg
ты вопрос-то читал?

Прошу пардону, ответил на более осмысленную версию вопроса.

Написать другой запрос, без агрегации, выполнить

Я сейчас пишу юнит тесты для перенесенных хп на linq, и мне необходимы данные в качестве тестового набора. Заполнять руками десятки таблиц, и вникать в логику, которую к тому же писал не я, нету ни времени ни желания.

Ilya Zviagin
Написать другой запрос, без агрегации, выполнить

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

Ilya Zviagin
всё равно рецепт тот же

Я поэтому и спросил, может есть какой-то инструмент профилирования, способный быстро и эффективно решить эту проблему.

Все кортежи к которым идёт обращение(все что в output + все предикаты, в том числе участвующие в соединениях). Также учтите, сиквел не читает строками, он читает страницами. Некоторые данные также могут читаться несколько раз, как пример spool table. Хоть это и временная структура , но количество чтений/записи она добавит. Ну и конечно же работа с tempdb. Вообще не корректно поставленный вопрос имхо.

Gopneg
а всю базу заюзать низя?

Нет, нам запрещено использовать базу в юнит тестах.

ꀀꁰꁵꁴꁩꁮꀊ ꃿꃫꁄꁃꃿꃫꁯꁏꃽꀿꃛ
Нет, нам запрещено использовать базу в юнит тестах...

не работай с идиотами хранимки переписали на линк, заставили негра тестировать бд без бд все бы хорошо если не быть этим негром

Dmitriy Ivanov
Все кортежи к которым идёт обращение(все что в out...

В общем как я понял, это невозможно. Спасибо.

ꀀꁰꁵꁴꁩꁮꀊ ꃿꃫꁄꁃꃿꃫꁯꁏꃽꀿꃛ
В общем как я понял, это невозможно. Спасибо.

Возможно, но не понятно , что конкретно нужно получить как результат.

Dmitriy Ivanov
Возможно, но не понятно , что конкретно нужно полу...

Предположим есть 2 таблицы: CREATE TABLE Rabbits (   Id INTEGER,   Name VARCHAR(255),   Age INTEGER,   Weight DOUBLE,   UnitId INTEGER,   FOREIGN KEY (UnitId) REFERENCES Units(Id) ); CREATE TABLE Units (   Id INTEGER,   Name VARCHAR(255) ); Я пишу для них запрос по типу select Age, sum(weight) as TotalWeight from Rabbits join Units on UnitId = Units.Id where Units.Name = 'Unit1' group by Age И мне необходимо получить данные, над которыми производился данный запрос. Они будут эквивалентны результату выполнения следующих запросов: select * from Units where Units.Name = 'Unit1' select Age, Weight, UnitId from Rabbits where UnitId = 1 На текущем примере это не составляет труда, но когда запрос содержит десятки таблиц с кучей jon'ов и подзапросов, это составляет большую проблему, как все это декомпозировать без нарушения логики.

Dmitriy Ivanov
Уберите все агрегаты и получите то что хотите.

Это и так понятно. Проблема в том, что те запросы, над которыми я работаю, очень сложны для этого.

Похожие вопросы

Обсуждают сегодня

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Карта сайта