Добрый день.
На MS SQL Server есть табличка, в ней данные вида
ID Parent Value
1 1 2.7
2 1 2.8
3 2 3.2
4 2 3.2
5 2 3.3
6 3 4.1
Дочерних элементов каждого parent должно быть по три, то есть надо определить, где сколько не хватает, и столько забить средними значениями (добавить одну запись с Parent=1, у Parent=2 все норм, добавить две записи с Parent=3).
Как делается сейчас:
Выбираются родители и недостача
Parent Lost
1 1
2 0
3 2
Записи пробегаются курсором, внутри которого WHILE'ом нужное количество раз выполняется INSERT
Проблема в том, что в оригинальной табличке записей ~20 млн. и надо вставить тысячи недостающих, что выливается в непотребное время выполнения операции.
И, собственно, вопрос: чем заменить конструкцию CURSOR + WHILE?
Или заменить MSSQL на другое что?
Заранее спасибо!