Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
ВнизНеобходимо составить Найти похожие ветки
← →
Эдуард (2003-03-19 09:59) [0]Необходимо составить "сложный" отчет. Без использования дополнительных таблиц не обойтись. Но при обновременном обращении к формированию этого отчета несколькими пользователями возникает конфликтная ситуация (одновременное изменение данных одной таблицы несколькими пользователями). Как же можно избежать данной конфликтной ситуации?
Заранее благодарен.
← →
Жук (2003-03-19 10:15) [1]С помощью транзакций.
← →
Johnmen (2003-03-19 10:18) [2]А не надо создавать временные таблицы в базе !
Создай виртуальную таблицу в памяти при работе приложения...Если уж никак не обойтись просто запросом(ами).
← →
zacho (2003-03-19 10:21) [3]
> Эдуард (19.03.03 09:59)
> Необходимо составить "сложный" отчет. Без использования
> дополнительных таблиц не обойтись.
Т.е. для формирования отчета сначала производится выборка в эти самые дополнительные таблицы ? В подавляющем большинстве случаев можно обойтись без дополнительных таблиц, используя хранимые процедуры с FOR SELECT ..
> Но при обновременном обращении к формированию этого отчета
> несколькими пользователями возникает конфликтная ситуация
> (одновременное изменение данных одной таблицы несколькими
> пользователями).
Скорее всего, неправильно спроектированы таблицы. Приведи описание структуры таблиц, может чего и посоветуем.
← →
Sergey13 (2003-03-19 10:22) [4]2Эдуард (19.03.03 09:59)
Можно попробовать дополнить структуру временных "дополнительных таблиц" сведениями о пользователях-"владельцах" записи.
← →
Эдуард (2003-03-19 10:59) [5]В принципе правильно, я использую временные таблицы для предварительной выборки (с использованием агр.ф-ции SUM), а затем формирую запрос к этой временной таблице с использованием агрегатной функции SUM.
Вопрос как создать временную таблицу так, чтобы она была недоступна другим пользователям во время формирования запроса.
Может использовать VIEW с каким то уникальным именем для каждого пользователя?
Заранее благодарен!
← →
Sergey13 (2003-03-19 11:15) [6]2Эдуард (19.03.03 10:59)
А ты их (таблицы эти) каждый раз создаешь что ли?
← →
DarkGreen (2003-03-19 11:43) [7]А разве нельзя в одном запросе провести все необходимое тебе агрегирование?
← →
Эдуард (2003-03-31 23:10) [8]Нет агрегирование не получается
← →
zacho (2003-04-01 09:07) [9]
> Эдуард (31.03.03 23:10)
> Sergey13 © (19.03.03 10:22) тебе правильно посоветовал.
А ты уверен, что возможностей хранимых процедур тебе недостаточно ?
P.S. Для ускорения (и упрощения) рассчетов можно не проводить агрегирование каждый раз при формировании отчета, а создать постоянные таблицы для хранения нужных агрегатов и заполнять их из триггеров.
← →
Эдуард (2003-04-01 10:16) [10]Дело в том, что разный интервал дат использует пользователь
← →
zacho (2003-04-01 10:26) [11]
> Эдуард (01.04.03 10:16)
Ну и что ? У меня тоже отчеты формируются по произвольным интервалам, но хранимых процедур мне вполне достаточно.
← →
Соловьев (2003-04-01 10:29) [12]2 Эдуард
ХП как раз то. Туда и параметры передавай те что пользователь задает.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.072 c