|
|
|
Forum Guru
      
участник
Last Login: 31.03.2008 18:35
Сообщ.: 54,
Visits: 771
|
|
| Мне нужно из таблицы, содержащей 288 полей (f1,f2,...f288), обработать данные каждых трех последовательных полей (f1,f2,f3;f4,f5,f6;...;f286,f287,f288) и записать результаты в другую таблицу, содержащую соответственно 96 полей (ff1,ff2,...ff96). Я это сделал, но работает медленно. Помогите найти самое быстрое решение.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
| Попробуй использовать хранимую процедуру
|
|
|
|
|
Forum Guru
      
участник
Last Login: 31.03.2008 18:35
Сообщ.: 54,
Visits: 771
|
|
| Проблема не в хранимой процедуре, а в том, что мне нужно 96 раз обратиться к каждой записи первой таблицы, выбрать 3 значения в промежуточную таблицу, обработать их и результат записать во вторую таблицу.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 24.08.2008 22:23
Сообщ.: 1 329,
Visits: 15 054
|
|
| Используй SELECT INTO для формирования временной таблицы, потом из нее вставляй куда нужно.
|
|
|
|
|
Forum Guru
      
участник
Last Login: 31.03.2008 18:35
Сообщ.: 54,
Visits: 771
|
|
| А что SELECT INTO работает быстрее чем INSERT ? Ведь все равно мне придется сделать это 96 раз для каждой записи.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 24.08.2008 22:23
Сообщ.: 1 329,
Visits: 15 054
|
|
SELECT FUNC(f1,f2,f3) AS ff1 INTO tmp ...
Используй вычисления в запросе, результат вставляй в новую таблицу, либо в существующую (зависит от возможности сделать вычисления в один проход). Может на ХП это можно сделать еще проще.
|
|
|
|