Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 29   вперед  Ctrl
 Re: Каше vs. Фокс....  [new]
MX -- ALEX
Guest
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================
6 мар 06, 10:43    [2420150]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Vlad2005
Member

Откуда: Воронеж
Сообщений: 119
MX -- ALEX
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================


Позанудствую. НЕТ такой "программы 1С-Предприятие". Есть
комплекс, а вариантов настройки, даже "коробочных" -
боюсь что СОТНИ. Так что прошу уточнить, о какой "программе" идет
речь. Вопрос у меня без подковырки, меня интересуют ПОЛНОФУНКЦИОНАЛЬНЫЕ аналоги хотя бы 1С Бухгалтерии, для начала.
С примерами внедрения, если можно.
6 мар 06, 10:50    [2420194]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
MX -- ALEX
Guest
c127
Забыл сказать

MX -- ALEX

то есть:
перебирать в цикле все ветви дерева "T"
и если встретится что ищем
напечатать ветвь (z) значение (@z) и остановить пробежку (quit)
если не останавливать напечатает все ветви содержащие "Tiger"
по скорости прокрутка миллиона ветвей в CACHE 5.1 занимает
примерно секунду

Пробег по миллиону записей в оракле 8 на пентиуме 500МГц м IDE диском и 128 МБ ОЗУ (может 256, не помню, все равно он ее всю не занимал) в 2000 году тоже занимал примерно секунду. Никаких индексов, никакой оптимизации, тупо поставили оракл, заполнили таблицу и протестировали. Перебор миллиона записей при стандартном моделировании древовидной структуры это полный аналог прохода по дереву с миллионом вершин.

А после индексации, тоже без настроек, все по умолчанию, в секунду стало выполняться примерно 200 запросов по нахождению записи в таблице с 1млн. записей.

примерно те же скорости по нахождению записи
что и в CACHE 5.1
хотя согласен - ORAKLE в целом покруче смотрится
6 мар 06, 10:50    [2420195]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
А если вернуться к изначальной теме топика, то у меня вопрос. Есть задача, как ее сделать на мампсе (и переносимо) я знаю. Для меня вопрос как ее делают на sql.

Попробую сформулировать. Есть набор объектов. У объекта есть атрибут, пусть будет цвет. Требуется выдержать ограничение вида "не более N синих объектов". Если N равно 1 то это, насколько понимаю, выполянется ограничением unique. Интересно как делается в sql если N не равно 1.

Причина интереса в подозрении что если ответ и есть то он находится ну никак не в языке sql, а в различного рода оговорках
* это уровень сервера приложений
* это специфика расширений языка в такой-то реализации sql
* возьмите другой сервер
* еще какое-нибудь хитроумие
6 мар 06, 10:56    [2420229]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Vlad2005
Member

Откуда: Воронеж
Сообщений: 119
MX -- ALEX
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================


Позанудствую. НЕТ такой "программы 1С-Предприятие". Есть
комплекс, а вариантов настройки, даже "коробочных" -
боюсь что СОТНИ. Так что прошу уточнить, о какой "программе" идет
речь. Вопрос у меня без подковырки, меня интересуют ПОЛНОФУНКЦИОНАЛЬНЫЕ аналоги хотя бы 1С Бухгалтерии, для начала.
С примерами внедрения, если можно.
6 мар 06, 10:57    [2420233]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ну я
А если вернуться к изначальной теме топика, то у меня вопрос. Есть задача, как ее сделать на мампсе (и переносимо) я знаю. Для меня вопрос как ее делают на sql.

Попробую сформулировать. Есть набор объектов. У объекта есть атрибут, пусть будет цвет. Требуется выдержать ограничение вида "не более N синих объектов". Если N равно 1 то это, насколько понимаю, выполянется ограничением unique. Интересно как делается в sql если N не равно 1.

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

Это обычный триггер:
CREATE TRIGGER ValidColod BEFORE INSERT, UPDATE
ON Table
REFERENCING NEW AS NewValue
WHEN (
  EXISTS (
    SELECT 1
    FROM Table t
      INNER JOIN RuleColor r ON r.Color = t.Color
    WHERE t.Color = NewValue.Color AND
              t.Id <> NewValue.Id
    HAVING Count(t.Color) => r.ColorValue
  )
)
BEGIN
  RAISERROR 20000 'Кол-во цветов превышено';
END;
6 мар 06, 11:12    [2420308]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
сорри, нажал раньше времени. В триггере мы говорим, что он выполняется до физ операции вставки или обновления записи, вызывается для каждой записи по условию, что найдены записи, у которых кол-во существующих обьектов с цветом, равным добавляемогу или изменяемогу цвету записи, уже равно или больше заявленному в таблице RuleColor максимальному кол-ву цветов на этот цвет. При нахождении записи, ругаемся и таким образом автоматически откатываем транзакцию, пересылая на клиента ошибку (уф, запрос получается гораздо короче, чем пояснения). Так или иначе (в разной просто семантике), это реализуется на любой РСУБД, поддерживающей триггера (то есть почти всех).
6 мар 06, 11:16    [2420327]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
Server: Msg 170, Level 15, State 1, Procedure ValidColod, Line 1
Line 1: Incorrect syntax near 'BEFORE'.

Нет уж, дядька, давай-ка с указанием на каком именно сервере ты это делал.
6 мар 06, 11:27    [2420371]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ну я
Server: Msg 170, Level 15, State 1, Procedure ValidColod, Line 1
Line 1: Incorrect syntax near 'BEFORE'.

Нет уж, дядька, давай-ка с указанием на каком именно сервере ты это делал.

Я дал пример и написал ниже, что для каждого сервера синтаксис триггера и языка ХП будет отличным, идея будет таже. Что непонятного ?

P.S. Пример дан на WatcomSQL сервера ASA 9.0.2.
6 мар 06, 11:29    [2420378]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
ASCRUS
ну я
Server: Msg 170, Level 15, State 1, Procedure ValidColod, Line 1
Line 1: Incorrect syntax near 'BEFORE'.

Нет уж, дядька, давай-ка с указанием на каком именно сервере ты это делал.

Я дал пример и написал ниже, что для каждого сервера синтаксис триггера и языка ХП будет отличным, идея будет таже. Что непонятного ?

Было бы понятно - не спрашивал бы.

ASCRUS
P.S. Пример дан на WatcomSQL сервера ASA 9.0.2.


Стало быть, пунктик
* это специфика расширений языка в такой-то реализации sql
6 мар 06, 11:32    [2420396]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Стало быть, пунктик
* это специфика расширений языка в такой-то реализации sql

НЕТ (еще раз). Триггера входят в стандарт SQL и есть во всех современных РСУБД, поэтому они не могут считаться расширением какой то реализации сервера.
6 мар 06, 11:43    [2420456]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
MX -- ALEX
Guest
Vlad2005
MX -- ALEX
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================


Позанудствую. НЕТ такой "программы 1С-Предприятие". Есть
комплекс, а вариантов настройки, даже "коробочных" -
боюсь что СОТНИ. Так что прошу уточнить, о какой "программе" идет
речь. Вопрос у меня без подковырки, меня интересуют ПОЛНОФУНКЦИОНАЛЬНЫЕ аналоги хотя бы 1С Бухгалтерии, для начала.
С примерами внедрения, если можно.

А как узнать это полный или не полный аналог ?
Если например предприятие ВСЮ бухгалтерию ведет в нашей программе
(зарплата, основные средства, финансы, материалы, себестоимость)
сеть на 30 раб мест - это полный аналог ?
Cудоверфь
Металлургический завод
Предприятие по переработке металлолома
6 мар 06, 11:49    [2420479]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
ASCRUS
Стало быть, пунктик
* это специфика расширений языка в такой-то реализации sql

НЕТ (еще раз). Триггера входят в стандарт SQL и есть во всех современных РСУБД, поэтому они не могут считаться расширением какой то реализации сервера.

Ну, хорошо, хорошо. Триггера есть. Но не во всех современных серверах есть триггера BEFORE. В частности, в горячо любимом на сайте sql.ru mssql2000.
6 мар 06, 11:52    [2420491]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
ASCRUS
сорри, нажал раньше времени. В триггере мы говорим, что он выполняется до физ операции вставки или обновления записи, вызывается для каждой записи по условию, что найдены записи, у которых кол-во существующих обьектов с цветом, равным добавляемогу или изменяемогу цвету записи, уже равно или больше заявленному в таблице RuleColor максимальному кол-ву цветов на этот цвет. При нахождении записи, ругаемся и таким образом автоматически откатываем транзакцию, пересылая на клиента ошибку (уф, запрос получается гораздо короче, чем пояснения). Так или иначе (в разной просто семантике), это реализуется на любой РСУБД, поддерживающей триггера (то есть почти всех).

Как быть двум процессам, выполняющимся одновременно если синих N-1? Оба вызывают поиск, оба получают что можно, оба вставляют. Получаем что синих становится N+1?
6 мар 06, 12:12    [2420607]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
ну я
А если вернуться к изначальной теме топика, то у меня вопрос. Есть задача, как ее сделать на мампсе (и переносимо) я знаю. Для меня вопрос как ее делают на sql.

Попробую сформулировать. Есть набор объектов. У объекта есть атрибут, пусть будет цвет. Требуется выдержать ограничение вида "не более N синих объектов". Если N равно 1 то это, насколько понимаю, выполянется ограничением unique. Интересно как делается в sql если N не равно 1.

Причина интереса в подозрении что если ответ и есть то он находится ну никак не в языке sql, а в различного рода оговорках
* это уровень сервера приложений
* это специфика расширений языка в такой-то реализации sql
* возьмите другой сервер
* еще какое-нибудь хитроумие
Никакого хитроумия - это делается (к сожалению) только с помощью триггеров. Была бы полная поддержка ограничений целостности (как это заложено в РМД), была бы возможность декларативного задания такого ограничения. Встречный вопрос - как это делается на мампсах - просветите плиз.
6 мар 06, 12:24    [2420675]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Vlad2005
Member

Откуда: Воронеж
Сообщений: 119
MX -- ALEX
Vlad2005
MX -- ALEX
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================


Позанудствую. НЕТ такой "программы 1С-Предприятие". Есть
комплекс, а вариантов настройки, даже "коробочных" -
боюсь что СОТНИ. Так что прошу уточнить, о какой "программе" идет
речь. Вопрос у меня без подковырки, меня интересуют ПОЛНОФУНКЦИОНАЛЬНЫЕ аналоги хотя бы 1С Бухгалтерии, для начала.
С примерами внедрения, если можно.

===============================
А как узнать это полный или не полный аналог ?
Если например предприятие ВСЮ бухгалтерию ведет в нашей программе
(зарплата, основные средства, финансы, материалы, себестоимость)
сеть на 30 раб мест - это полный аналог ?
Cудоверфь
Металлургический завод
Предприятие по переработке металлолома

=========================================
1. Способность к БЫСТРОМУ ( в темпе нашего многоумного законодателя)
обновлению учетной поитики, структуры документооборота, генерации выходных документов и файлов для обмена с клятыми фондами, МНС-никами, и проч.
2. Работа в полном соотвтетсвии с ПБУ, несмотря на их изменения.
3. Интеграция между компонентами (Бухгалтерия, торговля и склад, зарплата)
на уровне документов.
4. Наличие АЛЬТЕРНАТИВНЫХ поставщиков услуг по сопровождению продукта
в течении ВСЕГО жизненного цикла.
5. Устойчивость, наличие средств разделения доступа к документам на уровне
пользователей.
6. Возможность ведения распределенных баз.
7. Возможность быстрого и безболезненного исправления функциональности
без перелопачивания великих мегобайтов кода.
Можно еще и еще говорить, но если Вы занимаетесь бухгалтерией, то
должны знать всеж продукт основного конкурента на рынке ;-))
6 мар 06, 12:40    [2420749]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
Как на мампсах.
Писать синий объект может только один процесс. Соответственно перед попытками вставить синий или удалить синий нужно встать в блокировку. Какое ей дать имя - дело десятое, главное чтобы все процессы проходили через нее. Ну скажем lock ^some("Nсиних").

Операция вставки синего.
Блокируем, если в течении таймаута не получили то не судьба. Если получили то считаем имеющиеся синие. Если их N-1 то вставлять можно. Вставляем. Коммит. Снимаем блокировку.

Операция удаления синего.
Блокируем, если в течении атймаута не получили то не судьба. Если получили, то удаляем. Коммит. Снимаем блокировку.

Операция изменения с несинего на синий - как вставка, изменение с синего на несиний - как удаление.

Из неочевидного - блокировка для удаления. Выполняется для того чтобы при откате не получить восстановления синего если между нашим удалением пойдет вставка синего. Он не должен вставиться пока мы не подтвердимся.
6 мар 06, 12:47    [2420778]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Vlad2005
Member

Откуда: Воронеж
Сообщений: 119
MX -- ALEX
Vlad2005
MX -- ALEX
мод
MX -- ALEX

Почему все поголовно должны терзать только SQL ?
Шаг влево - шаг вправо - расстрел ?

Да вот по этому:
Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.
Решение для М я знаю :) но хочется сначала послушать М-технологов.
Ждемс.

Есть программа "1c-предприятие"
Ее реализацию на М я знаю :)
Но хочется увидеть Ваш вариант на SQL.
=========================


Позанудствую. НЕТ такой "программы 1С-Предприятие". Есть
комплекс, а вариантов настройки, даже "коробочных" -
боюсь что СОТНИ. Так что прошу уточнить, о какой "программе" идет
речь. Вопрос у меня без подковырки, меня интересуют ПОЛНОФУНКЦИОНАЛЬНЫЕ аналоги хотя бы 1С Бухгалтерии, для начала.
С примерами внедрения, если можно.

===============================
А как узнать это полный или не полный аналог ?
Если например предприятие ВСЮ бухгалтерию ведет в нашей программе
(зарплата, основные средства, финансы, материалы, себестоимость)
сеть на 30 раб мест - это полный аналог ?
Cудоверфь
Металлургический завод
Предприятие по переработке металлолома

=========================================
1. Способность к БЫСТРОМУ ( в темпе нашего многоумного законодателя)
обновлению учетной поитики, структуры документооборота, генерации выходных документов и файлов для обмена с клятыми фондами, МНС-никами, и проч.
2. Работа в полном соотвтетсвии с ПБУ, несмотря на их изменения.
3. Интеграция между компонентами (Бухгалтерия, торговля и склад, зарплата)
на уровне документов.
4. Наличие АЛЬТЕРНАТИВНЫХ поставщиков услуг по сопровождению продукта
в течении ВСЕГО жизненного цикла.
5. Устойчивость, наличие средств разделения доступа к документам на уровне
пользователей.
6. Возможность ведения распределенных баз.
7. Возможность быстрого и безболезненного исправления функциональности
без перелопачивания великих мегобайтов кода.
Можно еще и еще говорить, но если Вы занимаетесь бухгалтерией, то
должны знать всеж продукт основного конкурента на рынке ;-))
6 мар 06, 12:48    [2420785]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
ну я
Как на мампсах.
Писать синий объект может только один процесс. Соответственно перед попытками вставить синий или удалить синий нужно встать в блокировку. Какое ей дать имя - дело десятое, главное чтобы все процессы проходили через нее. Ну скажем lock ^some("Nсиних").

Операция вставки синего.
Блокируем, если в течении таймаута не получили то не судьба. Если получили то считаем имеющиеся синие. Если их N-1 то вставлять можно. Вставляем. Коммит. Снимаем блокировку.

Операция удаления синего.
Блокируем, если в течении атймаута не получили то не судьба. Если получили, то удаляем. Коммит. Снимаем блокировку.

Операция изменения с несинего на синий - как вставка, изменение с синего на несиний - как удаление.

Из неочевидного - блокировка для удаления. Выполняется для того чтобы при откате не получить восстановления синего если между нашим удалением пойдет вставка синего. Он не должен вставиться пока мы не подтвердимся.
Мда. Спасибо, порадовали. Больше вопросов не имею.
6 мар 06, 12:51    [2420798]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ну я
Member

Откуда: Москва
Сообщений: 1276
Павел Воронцов
Мда. Спасибо, порадовали. Больше вопросов не имею.

А мне порадоваться и сказать спасибо за раскрытие темы не судьба?
6 мар 06, 12:55    [2420815]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2402
Блог
ну я
А мне порадоваться и сказать спасибо за раскрытие темы не судьба?
Ну это Вам виднее. Может и не судьба.
6 мар 06, 13:16    [2420942]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
MX -- ALEX
Guest
Vlad2005
[
1. Способность к БЫСТРОМУ ( в темпе нашего многоумного законодателя)
обновлению учетной поитики, структуры документооборота, генерации выходных документов и файлов для обмена с клятыми фондами, МНС-никами, и проч.
2. Работа в полном соотвтетсвии с ПБУ, несмотря на их изменения.
3. Интеграция между компонентами (Бухгалтерия, торговля и склад, зарплата)
на уровне документов.
4. Наличие АЛЬТЕРНАТИВНЫХ поставщиков услуг по сопровождению продукта
в течении ВСЕГО жизненного цикла.
5. Устойчивость, наличие средств разделения доступа к документам на уровне
пользователей.
6. Возможность ведения распределенных баз.
7. Возможность быстрого и безболезненного исправления функциональности
без перелопачивания великих мегобайтов кода.
Можно еще и еще говорить, но если Вы занимаетесь бухгалтерией, то
должны знать всеж продукт основного конкурента на рынке ;-))

я сам себе :) поставил бы такие оценки в баллах по 10-балльной шкале
1. 9
2. 9 (хотя есть логические противоречия и недомолвки в Требованиях)
3. 10
4. + (пока только на территории Латвии и Литвы)
5. 7
6. 9
7. 9
Вообще то мы руководствуемся требованиями Евросоюза
Есть также перечень требований утвержд Кабинетом Министров
но в принципе по сути то же самое

Видимо Вы хорошо знаете предмет
Есть ли у Вас наработки - познакомиться ?
==============================
6 мар 06, 13:29    [2421025]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ну я
ASCRUS
сорри, нажал раньше времени. В триггере мы говорим, что он выполняется до физ операции вставки или обновления записи, вызывается для каждой записи по условию, что найдены записи, у которых кол-во существующих обьектов с цветом, равным добавляемогу или изменяемогу цвету записи, уже равно или больше заявленному в таблице RuleColor максимальному кол-ву цветов на этот цвет. При нахождении записи, ругаемся и таким образом автоматически откатываем транзакцию, пересылая на клиента ошибку (уф, запрос получается гораздо короче, чем пояснения). Так или иначе (в разной просто семантике), это реализуется на любой РСУБД, поддерживающей триггера (то есть почти всех).

Как быть двум процессам, выполняющимся одновременно если синих N-1? Оба вызывают поиск, оба получают что можно, оба вставляют. Получаем что синих становится N+1?

По моему механизм блокировок в РСУБД и М-системах одинаково используется. Только что РСУБД это автопилотом делает, в Мумпсе надо как оказалось ручками писать (думаю не только это). Так что для РСУБД блокировочников это делается элементарно (для горячо любимого MSSQL на AFTER триггерах, где в условии вместо ">=" написать ">", что нормально отработает, правда с большими затратами ресурсов, раз уж оно сработает после физического изменения записей, в отличие от триггеров BEFORE). Для версионников придется покрутиться из за снапшота, причем для Oracle это видимо прокатит наложением на запрос хинта FOR UPDATE, а для клонов IB созданием явной монопольной блокировки через UPDATE, для гарантии отсутствия других одновременно пишущих изменяемый цвет транзакций). Тут все будет зависеть от архитектуры и реализации РСУБД, но опять же ничего возможного естественно нет ни для какого сервера.
6 мар 06, 13:41    [2421097]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
ну я
Как быть двум процессам, выполняющимся одновременно если синих N-1? Оба вызывают поиск, оба получают что можно, оба вставляют. Получаем что синих становится N+1?

Триггер выполняется в транзакции, так что в нем не надо задумываться что-кто-то может вклиниться

ASCRUS
для горячо любимого MSSQL на AFTER триггерах, где в условии вместо ">=" написать ">", что нормально отработает, правда с большими затратами ресурсов, раз уж оно сработает после физического изменения записей, в отличие от триггеров BEFORE

В MSSQL есть instead trigger - практически тоже что и BEFORE
6 мар 06, 14:00    [2421227]     Ответить | Цитировать Сообщить модератору
 Re: Каше vs. Фокс....  [new]
мод
Guest
MX -- ALEX

Есть картотека персонала 100 полей уникальный № поиск возможен по некоторым полям.
Решение для РБД тривиально: таблица на 100 полей уник. индекс по № индексы по полям поиска. Все.

Есть программа "1c-предприятие"
[/quot]
1с меня не интересует, интересует простой пример. Я догадываюсь почему вы не хотите его рассмотреть, слишком уж очевидным станет убогость М :)
6 мар 06, 14:01    [2421235]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 29   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить