Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8   вперед  Ctrl      все
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Уважаемый Alex.Czech !

И это мы уже обсудили. Просто напоминаю:

- количество экземпляров объектов;
- количество экземпляров других объектов, связанных с конкретным экземпляром объекта по конкретной связи;
- количество экземпляров для каждого значения в индексах

поддерживаются автоматически при вводе/удалении/обновлении экземпляров.

По неиндексированным характеристикам ТАКИХ данных нет.


Прошу прощения, я не все тут читал... а в MS SQL такие данные по неиндексированным характеристикам есть. Точнее, могут быть, если завести статистику. И это часто делается, причем именно для тех данных, для которых индекс заводить смысла нет - скажем, чтобы SQL Server, как и я, человек, всегда знал, что процент выполненных проводок в таблице оных проводок на реальной работающей системе обычно равен 90-100% и таким образом условие
WHERE Accepted=1
ни в коем случае не следует воспринимать как такое, с которого надо победоносно начинать выполнять запрос
23 дек 04, 17:27    [1205636]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
vybegallo
Кстати, еще вопрос - а асинхронный ввод-вывод ваша база поддерживает ? Есть ли у вас отдельный процесс, занимающийся вводом-выводом, или каждая нить сама выполняет чтение-запись, блокируя всех остальных ?


Если я адекватно понял ваши вопросы то в отношении VDS ответ всюду будет утвердительным. Но можете пояснить.
23 дек 04, 18:09    [1205783]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
vybegallo

Малтитредность реализована в Информиксе начиная с версии 6 (1993 г.) (а так же в, насколько я знаю, Сайбейсе и MS SQL Server-е). За 11 лет эксплуатации на паре десятков юниксов, нескольких сотнях платформ и в самых требовательных окружениях она всяко-разно вылизана и оптимизирована получше.


Ну если говорить о VDS, то эта система изначально проектировалась именно малтисредовой и именно для эксплуатации на множестве платформ (т.е. иного даже не предполагалось). Само проектирование и выпуск первых коммерческих версий велись в 1987-1991гг.
1987г. - основание Versant Corporation
1992г. - выход первых крупных продуктов с использование Versant (телефонные станции, медицинское оборудование).
1994г. - VDS 4.0
2003г. - VDS 6.0
23 дек 04, 18:20    [1205816]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alexey Rovdo
vybegallo

Малтитредность реализована в Информиксе начиная с версии 6 (1993 г.) (а так же в, насколько я знаю, Сайбейсе и MS SQL Server-е). За 11 лет эксплуатации на паре десятков юниксов, нескольких сотнях платформ и в самых требовательных окружениях она всяко-разно вылизана и оптимизирована получше.


Ну если говорить о VDS, то эта система изначально проектировалась именно малтисредовой и именно для эксплуатации на множестве платформ (т.е. иного даже не предполагалось). Само проектирование и выпуск первых коммерческих версий велись в 1987-1991гг.
1987г. - основание Versant Corporation
1992г. - выход первых крупных продуктов с использование Versant (телефонные станции, медицинское оборудование).
1994г. - VDS 4.0
2003г. - VDS 6.0


Пардон, но вы плохо знаете свой продукт :
"Beginning with Release 5, database connections start threads rather than processes." (VERSANT Database Fundamentals Manual )
И я что-то не вижу в параметрах насторойки сервера числа запускаемых процессов - похоже, создается всего 2 процесса на одну базу данных, так что на многопроцессорных машинах большая часть ресурсов будет простаивать. Это так ?
Кстати, Informix, к примеру, рекомендует иметь buffer flush threads не меньше числа дисков - а у вас он всего один на БД.
23 дек 04, 19:30    [1205970]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
А что, пардон, Информикс под Виндами (речь именно о Виндах идет как я понимаю) на каждую клиентскую коннекцию создает новый процесс ? А у него ничего не трескается когда коннекций становится скажем 500 ?
23 дек 04, 22:26    [1206160]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Константин Лисянский
Member

Откуда: Москва
Сообщений: 902
Alexey Rovdo
The back-end server is completely under Versant’s realm of control, and is inherently multi-threaded, with a separate thread being used to manage each database connection. The primary motivation for making the server multi-threaded is to support highly concurrent accesses to the database with the lightest possible process footprint on the server.


Отсюда пока следует, что на один коннект запускается тред. А как насчёт параллелизма внутри запроса? Пока видно, что параллелизм существует только между отдельными конектами. Умеет ли VDS обрабатывать данные параллельно в одном запросе? И если да, то как он это делает?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
23 дек 04, 22:34    [1206167]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый Alex.Czech !

Я считаю, что даже для "Р"СУБД эта идея - архитектурное излишество.
А для ОСУБД, в которой принципиально нет понятия "настройка приложения", и в которой индексы являются полноценной частью данных (в отличие от "реляционных" систем) - это абсолютно не нужно.

Если уж Вы привели этот пример с проводками...
В Вашей таблице могло бы быть поле, в котором хранится значение как раз для не выполненных проводок, с типом индекса "пустые не хранить". Это проще, надежнее и не менее "экономично", чем поддержка статистики без индекса. Ведь Вам, насколько я понял, нужно быстро получать не выполненные проводки, чтобы их выполнить ? Извиняюсь, конечно, что "полез" в приложение, не зная его.
Да и MS SQL я перестал тщательно изучать после 6.5, когда стало ясно, что с "реляционностью" уже больше ничего не изменится. Может там до сих пор нет типа индекса "пустые не хранить" ? В Oracle, по крайней мере до 9-ки, не было даже банального индексирования пустых значений...
23 дек 04, 22:38    [1206171]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alex.Czech
А что, пардон, Информикс под Виндами (речь именно о Виндах идет как я понимаю) на каждую клиентскую коннекцию создает новый процесс ? А у него ничего не трескается когда коннекций становится скажем 500 ?


Алекс, как я уже утверждал в этой дискуссии, Informix написан в multithread-ном стиле начиная с версии 6. Это, как я посмотрел, случилось аж в 1990 году. Так что ни о каких выделенных процессах для клиентского соединения ни под Юниксом, ни тем более под Виндами (которые сами по себе вместо процессов создают нити) речь не идет.
Кстати, можете спросить ораклистов и дибитушников - как у них, ничего не трескается при росте числа коннектов - поскольку они написаны именно в такой архитектуре. Я спрашивал - мне сказали "нормально, константин !"
23 дек 04, 22:49    [1206179]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Тогда я не понимаю такого повышенного внимания к фразе "Начиная с версии 5 для каждой клиентской коннекции вместо процесса стал создаваться thread". Переделка правильная, и фраза правильная :)
23 дек 04, 22:58    [1206182]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Уважаемый Alex.Czech !

Я считаю, что даже для "Р"СУБД эта идея - архитектурное излишество.
А для ОСУБД, в которой принципиально нет понятия "настройка приложения", и в которой индексы являются полноценной частью данных (в отличие от "реляционных" систем) - это абсолютно не нужно.

Если уж Вы привели этот пример с проводками...
В Вашей таблице могло бы быть поле, в котором хранится значение как раз для не выполненных проводок, с типом индекса "пустые не хранить". Это проще, надежнее и не менее "экономично", чем поддержка статистики без индекса. Ведь Вам, насколько я понял, нужно быстро получать не выполненные проводки, чтобы их выполнить ? Извиняюсь, конечно, что "полез" в приложение, не зная его.
Да и MS SQL я перестал тщательно изучать после 6.5, когда стало ясно, что с "реляционностью" уже больше ничего не изменится. Может там до сих пор нет типа индекса "пустые не хранить" ? В Oracle, по крайней мере до 9-ки, не было даже банального индексирования пустых значений...


Нет, вы не совсем правильно поняли... мне надо получить отчет типа оборотной ведомости за неделю. И естественно в этом отчете должны фигурировать только "выполненные" проводки, невыполненные в него не включаются. Разумный человек, считая это самостоятельно по бухгалтерской книге, сначала отберет проводки за неделю, а потом уже начнет суммировать, по ходу дела отбрасывая "неисполненные" проводки, если будет знать, что их там одна на 1000. И SQL Server сделает ровно то же самое. Если будет знать что проводок 1 на 1000. А откуда ему это узнать ? Из статистики, разумеется.

Так что в системах, где оптимизатора запросов нету в виде отсутствия запросов, и роль оптимизатора выполняет специальный программист, пишущий программы обхода деревьев, статистики не нужны, конечно. Вместо статистики там тот самый специальный программист, знающий что "неисполненных" проводок всего 1 на 1000 и проверять это условие надо в последнюю очередь. Но лично мне больше нравится идея со статистикой, чем с увеличением фонда оплаты труда
23 дек 04, 23:04    [1206186]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alex.Czech
Тогда я не понимаю такого повышенного внимания к фразе "Начиная с версии 5 для каждой клиентской коннекции вместо процесса стал создаваться thread". Переделка правильная, и фраза правильная :)


Я придирался к фразе "Ну если говорить о VDS, то эта система изначально проектировалась именно малтисредовой ".
А оказывается, она стала таковой только с версии 5. Я что-то не могу найти, когда эта версия вышла - но экстраполируя даты версий 4 и 6, это где-то в 1998-99 годах.
23 дек 04, 23:31    [1206201]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Ну в принципе создавать процесс вместо thread-а - это даже несомненно круче :) Только очень накладно для Виндов

Тем более что речь идет о клиентских коннекциях... Оракл вообще вон можно так настроить что у него все коннекции будут через 1 thread настроить, было бы желание Это ж не говорит о том, что он не мулти-thread-овый
23 дек 04, 23:38    [1206206]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Уважаемый Alex.Czech !

Идея со статистикой увеличит фонд оплаты труда. Так как нужен опытный администратор, помимо программиста (если, конечно, это не один и тот же человек в случае простых приложений).

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

Итак, "SQL Server сделает ровно то же самое":

1. "Сначала отберет проводки за неделю". Чтобы это сделать статистика по "Вашему" полю "Выполненные проводки" не поможет. Значит есть индекс по Дате ?

2. "По ходу дела отбрасывая невыполненные проводки". Здесь используется "мое" поле "Невыполненные проводки", на которое Вы, почему-то, не обратили внимания.

Так что Ваши слова о специальном программисте, пишущем программы обхода деревьев, мне не понятны. Может быть потому, что я никогда не использовал иерархические СУБД, а Вы использовали, и у Вас есть печальный опыт обхода деревьев ? Но, в любом случае, причем здесь объектные СУБД ? И как обстоит дело с типом индекса "пустые не хранить" ?
23 дек 04, 23:44    [1206213]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
По поводу индексов "NULL не хранить" - сдается мне, вы прекрасно знаете, что таких индексов нету в MS SQL :)

Индекс по дате разумеется есть, иначе говорить не о чем. Поле "Невыполненные" вместо "Выполненные" не поможет, потому что тогда условие примет вид
WHERE NotAccepted=0, и это условие все равно будет выполняться для 90-99% проводок и применять его надо в последнюю очередь
23 дек 04, 23:51    [1206218]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
И еще - мне с вами трудно что-то обсуждать в смысле сравнения "Р"СУБД и ООСУБД, потому что вы про "Р" что-то знаете (хотя и далеко не все, но многое), а я про ОО ничего. Только не предлагайте приходить на семинар, я зубы-то полечить не могу найти времени сходить :)
23 дек 04, 23:54    [1206223]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Я же честно сказал, что после 6.5 ПРЕКРАСНО уже не знаю.
WHERE NotAccepted=1 (а не 0).
Получается из-за того, что нет элементарного типа индексирования "пустые не хранить", приходится городить статистики по неиндексированным полям, которые рекомендуется отключать на промышленных приложениях...
Мне, из-за возраста, еще хуже - нет времени вставить зубы, а не то что залечить...
Но если будет желание что-то обсудить в области теории и проектирования баз данных, я всегда готов...
24 дек 04, 00:05    [1206236]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Я же честно сказал, что после 6.5 ПРЕКРАСНО уже не знаю.
WHERE NotAccepted=1 (а не 0).


НЕТ. Это "невыполненные" проводки, а мне надо для оборотной ведомости выполненные. Или вы предлагает мне сначала посчитать по всем, потом по невыполненным, а потом вычесть из первого второе ? Это дольше будет, даже если на бумажке вручную считать, а в СУБД-то тем более :)
24 дек 04, 00:09    [1206242]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Так Вы хотите сказать, что оптимизатор при условиях на индексированное поле "Дату" и неиндексированное и без статистики поле "Выполненные проводки" будет сначала использовать "Выпоненные проводки" ?

А Вам не кажется, что реализация Вашей логичной фразы "по ходу дела, отбрасывая лишние проводки", была бы не лишней в любой СУБД ?
24 дек 04, 00:28    [1206256]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alex.Czech
Ну в принципе создавать процесс вместо thread-а - это даже несомненно круче :) Только очень накладно для Виндов

Тем более что речь идет о клиентских коннекциях... Оракл вообще вон можно так настроить что у него все коннекции будут через 1 thread настроить, было бы желание Это ж не говорит о том, что он не мулти-thread-овый


Я что-то перестал понимать вашу логику изложения. При чем тут крутизна ?
И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ?
24 дек 04, 00:33    [1206257]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Под Windows (грубо говоря) да.
Грубо, потому что есть MTS
24 дек 04, 00:35    [1206259]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
vybegallo
Я что-то перестал понимать вашу логику изложения. При чем тут крутизна ?
И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ?


Под Виндами - несомненно. Под Виндами одному instance-у Ораклу несомненно и безусловно соответствует один процесс oracle.exe. Не верите - посмотрите в task manager-е
24 дек 04, 00:35    [1206260]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Так Вы хотите сказать, что оптимизатор при условиях на индексированное поле "Дату" и неиндексированное и без статистики поле "Выполненные проводки" будет сначала использовать "Выпоненные проводки" ?

А Вам не кажется, что реализация Вашей логичной фразы "по ходу дела, отбрасывая лишние проводки", была бы не лишней в любой СУБД ?


Не будет, а "может быть будет". Причем, что характерно, может быть он будет и прав - если запрос будет не за неделю, а за 10 лет, и процент "выполненных" проводок не 90, а 5
24 дек 04, 00:36    [1206261]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Андрей Леонидович
Guest
Откуда же он знает, что 5 БЕЗ СТАТИСТИКИ ?
24 дек 04, 00:42    [1206265]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
vybegallo
Guest
Alex.Czech
vybegallo
Я что-то перестал понимать вашу логику изложения. При чем тут крутизна ?
И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ?


Под Виндами - несомненно. Под Виндами одному instance-у Ораклу несомненно и безусловно соответствует один процесс oracle.exe. Не верите - посмотрите в task manager-е


Я как-бы немного в курсе что то, что в юниксе процесс, в виндах нить.
Как насчет юникса ? Оракл и там многонитевый, или таки многопроцессный ?
24 дек 04, 00:50    [1206270]     Ответить | Цитировать Сообщить модератору
 Re: А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий  [new]
Alex.Czech
Guest
Андрей Леонидович
Откуда же он знает, что 5 БЕЗ СТАТИСТИКИ ?


Так е-мое - с того ж разговор и начался, что не знает ! Зато по индексу знает, какой процент проводок попадет в диапазон. И он может ПРЕДПОЛОЖИТЬ, что выгоднее начать с условия Accepted=1, тем более что там равенство, а тут диапазон.

Вот чтобы он не предполагал, а знал, и нужна статистика по полю Accepted. А индекс, очевидно, не нужен, только место занимать
24 дек 04, 01:05    [1206277]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7 8   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить