Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Андрей ЛеонидовичУважаемый Alex.Czech ! И это мы уже обсудили. Просто напоминаю: - количество экземпляров объектов; - количество экземпляров других объектов, связанных с конкретным экземпляром объекта по конкретной связи; - количество экземпляров для каждого значения в индексах поддерживаются автоматически при вводе/удалении/обновлении экземпляров. По неиндексированным характеристикам ТАКИХ данных нет. Прошу прощения, я не все тут читал... а в MS SQL такие данные по неиндексированным характеристикам есть. Точнее, могут быть, если завести статистику. И это часто делается, причем именно для тех данных, для которых индекс заводить смысла нет - скажем, чтобы SQL Server, как и я, человек, всегда знал, что процент выполненных проводок в таблице оных проводок на реальной работающей системе обычно равен 90-100% и таким образом условие WHERE Accepted=1 ни в коем случае не следует воспринимать как такое, с которого надо победоносно начинать выполнять запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 17:27 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
vybegalloКстати, еще вопрос - а асинхронный ввод-вывод ваша база поддерживает ? Есть ли у вас отдельный процесс, занимающийся вводом-выводом, или каждая нить сама выполняет чтение-запись, блокируя всех остальных ? Если я адекватно понял ваши вопросы то в отношении VDS ответ всюду будет утвердительным. Но можете пояснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 18:09 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
vybegallo Малтитредность реализована в Информиксе начиная с версии 6 (1993 г.) (а так же в, насколько я знаю, Сайбейсе и MS SQL Server-е). За 11 лет эксплуатации на паре десятков юниксов, нескольких сотнях платформ и в самых требовательных окружениях она всяко-разно вылизана и оптимизирована получше. Ну если говорить о VDS, то эта система изначально проектировалась именно малтисредовой и именно для эксплуатации на множестве платформ (т.е. иного даже не предполагалось). Само проектирование и выпуск первых коммерческих версий велись в 1987-1991гг. 1987г. - основание Versant Corporation 1992г. - выход первых крупных продуктов с использование Versant (телефонные станции, медицинское оборудование). 1994г. - VDS 4.0 2003г. - VDS 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 18:20 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
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.12.2004, 19:30 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
А что, пардон, Информикс под Виндами (речь именно о Виндах идет как я понимаю) на каждую клиентскую коннекцию создает новый процесс ? А у него ничего не трескается когда коннекций становится скажем 500 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 22:26 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
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.12.2004, 22:34 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Уважаемый Alex.Czech ! Я считаю, что даже для "Р"СУБД эта идея - архитектурное излишество. А для ОСУБД, в которой принципиально нет понятия "настройка приложения", и в которой индексы являются полноценной частью данных (в отличие от "реляционных" систем) - это абсолютно не нужно. Если уж Вы привели этот пример с проводками... В Вашей таблице могло бы быть поле, в котором хранится значение как раз для не выполненных проводок, с типом индекса "пустые не хранить". Это проще, надежнее и не менее "экономично", чем поддержка статистики без индекса. Ведь Вам, насколько я понял, нужно быстро получать не выполненные проводки, чтобы их выполнить ? Извиняюсь, конечно, что "полез" в приложение, не зная его. Да и MS SQL я перестал тщательно изучать после 6.5, когда стало ясно, что с "реляционностью" уже больше ничего не изменится. Может там до сих пор нет типа индекса "пустые не хранить" ? В Oracle, по крайней мере до 9-ки, не было даже банального индексирования пустых значений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 22:38 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Alex.CzechА что, пардон, Информикс под Виндами (речь именно о Виндах идет как я понимаю) на каждую клиентскую коннекцию создает новый процесс ? А у него ничего не трескается когда коннекций становится скажем 500 ? Алекс, как я уже утверждал в этой дискуссии, Informix написан в multithread-ном стиле начиная с версии 6. Это, как я посмотрел, случилось аж в 1990 году. Так что ни о каких выделенных процессах для клиентского соединения ни под Юниксом, ни тем более под Виндами (которые сами по себе вместо процессов создают нити) речь не идет. Кстати, можете спросить ораклистов и дибитушников - как у них, ничего не трескается при росте числа коннектов - поскольку они написаны именно в такой архитектуре. Я спрашивал - мне сказали "нормально, константин !" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 22:49 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Тогда я не понимаю такого повышенного внимания к фразе "Начиная с версии 5 для каждой клиентской коннекции вместо процесса стал создаваться thread". Переделка правильная, и фраза правильная :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 22:58 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Андрей ЛеонидовичУважаемый Alex.Czech ! Я считаю, что даже для "Р"СУБД эта идея - архитектурное излишество. А для ОСУБД, в которой принципиально нет понятия "настройка приложения", и в которой индексы являются полноценной частью данных (в отличие от "реляционных" систем) - это абсолютно не нужно. Если уж Вы привели этот пример с проводками... В Вашей таблице могло бы быть поле, в котором хранится значение как раз для не выполненных проводок, с типом индекса "пустые не хранить". Это проще, надежнее и не менее "экономично", чем поддержка статистики без индекса. Ведь Вам, насколько я понял, нужно быстро получать не выполненные проводки, чтобы их выполнить ? Извиняюсь, конечно, что "полез" в приложение, не зная его. Да и MS SQL я перестал тщательно изучать после 6.5, когда стало ясно, что с "реляционностью" уже больше ничего не изменится. Может там до сих пор нет типа индекса "пустые не хранить" ? В Oracle, по крайней мере до 9-ки, не было даже банального индексирования пустых значений... Нет, вы не совсем правильно поняли... мне надо получить отчет типа оборотной ведомости за неделю. И естественно в этом отчете должны фигурировать только "выполненные" проводки, невыполненные в него не включаются. Разумный человек, считая это самостоятельно по бухгалтерской книге, сначала отберет проводки за неделю, а потом уже начнет суммировать, по ходу дела отбрасывая "неисполненные" проводки, если будет знать, что их там одна на 1000. И SQL Server сделает ровно то же самое. Если будет знать что проводок 1 на 1000. А откуда ему это узнать ? Из статистики, разумеется. Так что в системах, где оптимизатора запросов нету в виде отсутствия запросов, и роль оптимизатора выполняет специальный программист, пишущий программы обхода деревьев, статистики не нужны, конечно. Вместо статистики там тот самый специальный программист, знающий что "неисполненных" проводок всего 1 на 1000 и проверять это условие надо в последнюю очередь. Но лично мне больше нравится идея со статистикой, чем с увеличением фонда оплаты труда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:04 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Alex.CzechТогда я не понимаю такого повышенного внимания к фразе "Начиная с версии 5 для каждой клиентской коннекции вместо процесса стал создаваться thread". Переделка правильная, и фраза правильная :) Я придирался к фразе "Ну если говорить о VDS, то эта система изначально проектировалась именно малтисредовой ". А оказывается, она стала таковой только с версии 5. Я что-то не могу найти, когда эта версия вышла - но экстраполируя даты версий 4 и 6, это где-то в 1998-99 годах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:31 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Ну в принципе создавать процесс вместо thread-а - это даже несомненно круче :) Только очень накладно для Виндов Тем более что речь идет о клиентских коннекциях... Оракл вообще вон можно так настроить что у него все коннекции будут через 1 thread настроить, было бы желание Это ж не говорит о том, что он не мулти-thread-овый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:38 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Уважаемый Alex.Czech ! Идея со статистикой увеличит фонд оплаты труда. Так как нужен опытный администратор, помимо программиста (если, конечно, это не один и тот же человек в случае простых приложений). Почему же не правильно понял ? Я сказал об одной задаче на этой таблице (которую Вы пока не "отменили"), а Вы - о другой, о которой в первом сообщении ничего не сказали. Ну что же, давайте рассмотрим Вашу задачу. Итак, "SQL Server сделает ровно то же самое": 1. "Сначала отберет проводки за неделю". Чтобы это сделать статистика по "Вашему" полю "Выполненные проводки" не поможет. Значит есть индекс по Дате ? 2. "По ходу дела отбрасывая невыполненные проводки". Здесь используется "мое" поле "Невыполненные проводки", на которое Вы, почему-то, не обратили внимания. Так что Ваши слова о специальном программисте, пишущем программы обхода деревьев, мне не понятны. Может быть потому, что я никогда не использовал иерархические СУБД, а Вы использовали, и у Вас есть печальный опыт обхода деревьев ? Но, в любом случае, причем здесь объектные СУБД ? И как обстоит дело с типом индекса "пустые не хранить" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:44 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
По поводу индексов "NULL не хранить" - сдается мне, вы прекрасно знаете, что таких индексов нету в MS SQL :) Индекс по дате разумеется есть, иначе говорить не о чем. Поле "Невыполненные" вместо "Выполненные" не поможет, потому что тогда условие примет вид WHERE NotAccepted=0, и это условие все равно будет выполняться для 90-99% проводок и применять его надо в последнюю очередь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:51 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
И еще - мне с вами трудно что-то обсуждать в смысле сравнения "Р"СУБД и ООСУБД, потому что вы про "Р" что-то знаете (хотя и далеко не все, но многое), а я про ОО ничего. Только не предлагайте приходить на семинар, я зубы-то полечить не могу найти времени сходить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 23:54 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Я же честно сказал, что после 6.5 ПРЕКРАСНО уже не знаю. WHERE NotAccepted=1 (а не 0). Получается из-за того, что нет элементарного типа индексирования "пустые не хранить", приходится городить статистики по неиндексированным полям, которые рекомендуется отключать на промышленных приложениях... Мне, из-за возраста, еще хуже - нет времени вставить зубы, а не то что залечить... Но если будет желание что-то обсудить в области теории и проектирования баз данных, я всегда готов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:05 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Андрей ЛеонидовичЯ же честно сказал, что после 6.5 ПРЕКРАСНО уже не знаю. WHERE NotAccepted=1 (а не 0). НЕТ. Это "невыполненные" проводки, а мне надо для оборотной ведомости выполненные. Или вы предлагает мне сначала посчитать по всем, потом по невыполненным, а потом вычесть из первого второе ? Это дольше будет, даже если на бумажке вручную считать, а в СУБД-то тем более :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:09 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Так Вы хотите сказать, что оптимизатор при условиях на индексированное поле "Дату" и неиндексированное и без статистики поле "Выполненные проводки" будет сначала использовать "Выпоненные проводки" ? А Вам не кажется, что реализация Вашей логичной фразы "по ходу дела, отбрасывая лишние проводки", была бы не лишней в любой СУБД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:28 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Alex.CzechНу в принципе создавать процесс вместо thread-а - это даже несомненно круче :) Только очень накладно для Виндов Тем более что речь идет о клиентских коннекциях... Оракл вообще вон можно так настроить что у него все коннекции будут через 1 thread настроить, было бы желание Это ж не говорит о том, что он не мулти-thread-овый Я что-то перестал понимать вашу логику изложения. При чем тут крутизна ? И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:33 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Под Windows (грубо говоря) да. Грубо, потому что есть MTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:35 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
vybegalloЯ что-то перестал понимать вашу логику изложения. При чем тут крутизна ? И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ? Под Виндами - несомненно. Под Виндами одному instance-у Ораклу несомненно и безусловно соответствует один процесс oracle.exe. Не верите - посмотрите в task manager-е ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:35 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Андрей ЛеонидовичТак Вы хотите сказать, что оптимизатор при условиях на индексированное поле "Дату" и неиндексированное и без статистики поле "Выполненные проводки" будет сначала использовать "Выпоненные проводки" ? А Вам не кажется, что реализация Вашей логичной фразы "по ходу дела, отбрасывая лишние проводки", была бы не лишней в любой СУБД ? Не будет, а "может быть будет". Причем, что характерно, может быть он будет и прав - если запрос будет не за неделю, а за 10 лет, и процент "выполненных" проводок не 90, а 5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:36 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Откуда же он знает, что 5 БЕЗ СТАТИСТИКИ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:42 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Alex.Czech vybegalloЯ что-то перестал понимать вашу логику изложения. При чем тут крутизна ? И, кстати, вы хотите сказать, что Оракл - multithread-ный ? Т.е. одному соединению соответствует одна или более нить, а не один или более процесс ? Под Виндами - несомненно. Под Виндами одному instance-у Ораклу несомненно и безусловно соответствует один процесс oracle.exe. Не верите - посмотрите в task manager-е Я как-бы немного в курсе что то, что в юниксе процесс, в виндах нить. Как насчет юникса ? Оракл и там многонитевый, или таки многопроцессный ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 00:50 |
|
||
|
А кто и как понимает объекно-ориентированнную СУБД? Так сказать, критерий
|
|||
|---|---|---|---|
|
#18+
Андрей ЛеонидовичОткуда же он знает, что 5 БЕЗ СТАТИСТИКИ ? Так е-мое - с того ж разговор и начался, что не знает ! Зато по индексу знает, какой процент проводок попадет в диапазон. И он может ПРЕДПОЛОЖИТЬ, что выгоднее начать с условия Accepted=1, тем более что там равенство, а тут диапазон. Вот чтобы он не предполагал, а знал, и нужна статистика по полю Accepted. А индекс, очевидно, не нужен, только место занимать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 01:05 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32842888&tid=1553970]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 456ms |

| 0 / 0 |
