Rahulgupta.hanu Ответов: 2

Как получить 6-уровневый иерархический родитель-потомок из более чем 10 записей lacs более быстрым способом?


У меня есть более 10 записей lac, и я хочу получить записи, как родитель и ребенок.

Как оптимизировать мой запрос из-за того, что этот запрос занимает более 6 часов, чтобы получить результат.

пожалуйста, предложите, как оптимизировать этот запрос.


мне нужны такие записи.

seqno	level
1	S1	NULL
2	S2	1
3	S3	2
5	S1	NULL
6	S2	5
7	S3	6
8      S4    7
9	S3	6
10    S4   9
11	S3	6
13	S3	6
15	S1	NULL
16	S2	15
17	S3	16
19	S3	16
21	S3	16
23	S3	16
25	S1	NULL
26	S2	25
27	S3	26
29	S3	26
31	S3	26
33	S3	26



Спасибо,

Что я уже пробовал:

Как получить вышеуказанный результирующий набор с помощью cte.
Мне нужна последовательность
Как 1 Родитель-Ребенок
2 bChild-ребенок
3 dchild-childb
4 bchild1-ребенок
5 echild - childb1
6 bchild2 - ребенок

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Где ты застрял?
Какая помощь вам нужна?

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

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

Jörgen Andersson

Это не запрос, это вложенная и циклическая процедура. Да, это выглядит очень медленно.
Вы выбираете свои данные из множества временных таблиц, но как выглядит таблица, из которой эти данные поступают? Как выглядят эти данные?
Чего вы хотите достичь?

Jörgen Andersson

Нам все еще нужно знать, как выглядит ваша исходная таблица.

Richard Deeming

Вы отредактировали свой вопрос, чтобы удалить из него любые следы полезной информации. Ты явно не хочешь, чтобы тебе кто-то помог. Почему бы просто не удалить этот вопрос?

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
Как оптимизировать мой запрос из-за того, что этот запрос занимает более 6 часов, чтобы получить результат.

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


Рейтинг:
0

CHill60

Вы не предоставили нам достаточно информации, чтобы воссоздать ваш сценарий - например @SS3Min если он не объявлен, то я получаю ошибку Invalid object name '#P1' и никто не собирается пробираться через такое количество кода, чтобы попытаться воссоздать ваши таблицы для вас.

Как спросил @jorgen_andersson - чего вы пытаетесь достичь?

Есть гораздо более простые способы определить иерархию. Я привожу отработанный пример в своей статье Циклы обработки в SQL Server[^] - это работает на принципале, что вам не нужна петля!

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