Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 22 23 24 25 26 [27] 28 29 30 31 .. 34   вперед  Ctrl
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Gluk (Kazan)
Вообще, при массовых заливках констрэйнты и лишние индексы обычно отключают. Oracle силен не быстрой всавкой. А если уж приспичело что-то навставлять, есть SQLLoader с Direct модом.


Так об этом и речь! С отключенными констрейнтами все работает очень быстро. Я не сравнивал Oracle с FastObjects именно с отключенными констрейнтами по одной причине - скорости становятся одного порядка (тест проходит за несколько часов), а разница в 20-30% слишком мала, чтобы выяснять ее причины (настройки конфигурации, ресурсы сервера и т.п.).

Я лишь констатирую, что получить хорошую скорость можно только отключив констрейнты (даже отключение индексов так сильно на нее не влияет).
14 апр 05, 11:24    [1467420]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
А зачем в цикле каждый раз считать pstmt3, когда это можно сделать одним insert...select-ом ??? Не в этом-ли месте тормоза ?
14 апр 05, 11:25    [1467422]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1228
А что решили насчет
"SELECT MIN(Seat.id) seat_id_start, MAX(Seat.id)
 seat_id_end FROM Seat INNER JOIN Flight ON Flight.crafttype_id = 
Seat.crafttype_id WHERE Flight.id = ?"
о котором спросил vadiminfo? Как-то Alexey плавно обошел этот вопрос. Или я не так понял этот кусок кода:
    PreparedStatement pstmt3 =
           conn.prepareStatement("SELECT MIN(Seat.id) seat_id_start, MAX(Seat.id)
     seat_id_end FROM Seat INNER JOIN Flight ON Flight.crafttype_id = 
    Seat.crafttype_id WHERE Flight.id = ?");
    ...
    while (! (curr_day.equals(end_day))) {
      j = 0;
      while (++j <= 2000) {
        ...
        ResultSet rs = pstmt3.executeQuery();
        ...
      }
    }
?
14 апр 05, 11:26    [1467428]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Дело в том, что отключение констрейнтов с последующим их поднятием после массовой заливки действительно может быть в разы быстрее заливки с включенными констрейнтами. С этим в общем-то никто не спорит.
14 апр 05, 11:26    [1467432]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Gluk (Kazan)
А зачем в цикле каждый раз считать pstmt3, когда это можно сделать одним insert...select-ом ??? Не в этом-ли месте тормоза ?


Это считается 132126 раз. В принципе, можно конечно и сделать с этим что-нибудь, но ведь и этот код работает быстро при отключенных констрейнтах. А медленно - только при включенных.
14 апр 05, 11:27    [1467437]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Честно говоря, для меня привычнее PL/SQL код. И обозреть его проще ;)
14 апр 05, 11:29    [1467446]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Gluk (Kazan)
Дело в том, что отключение констрейнтов с последующим их поднятием после массовой заливки действительно может быть в разы быстрее заливки с включенными констрейнтами. С этим в общем-то никто не спорит.


Похоже, что даже не просто в разы, а на порядки.
14 апр 05, 11:29    [1467449]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Ну однажды я не отключил КОНТЕКСТНЫЕ индексы (в молодости). Заливалось неделю вместо суток :)
14 апр 05, 11:30    [1467458]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
2 Alexey Rovdo
Про Джаву я упомянул как пример. Не известно чего и скока и почему он ждал. Нужно точно определить чего ждет сервер. И там может быть много событий. Он мог ждать клиента - тот ему бесконечно посылает запросы.
При включении проверки выполняется запрос к предку, стока раз сколько вставляются записи - он же должен убедиться, что там есть соответсвующее значение. Т.е. присутствует чтение. Нужен его план, если выяснится, что он самый критичный на все протяжении выполнения закачки. Ну, конечно, он отнимет время.
Тот запрос что я писал, при увеличениии объемов тоже может сказаться драмматически - там есть и соединение и группировка.
При больших запросах, нужно например, проверять от PGA (а он у Вас 33 Мб) до других параметров и планов запросов и самой логики прилрожения. Например, убрать от туда грузящее чтение.
Оракл может стремиться к максимальному заполнению блоков при инсертах, а можно сказать ему этого не делать. Тада соотвественно скорость инсертов возрвастет, но потом запросы на чтение помедленнее будут - больше блоков придется просматривать.
Мне поручали проверку больших закачек ~ 100 млн. Наблюдал увеличение с часов на сутки из-за активности посторонних сессий на сервере.
Вы привели init.ora? Но в 9 как правило параметры инициализации берутся не из него (из spfile). Кроме того, они вступают в силу после рестарта.
Там нужны другие показатели статестические, чтобы выяснить на что ушло время. А потом как с этим бороться.
Многое бы сказала трассировка. Не полхо иметь и дуругие показатели по статистике.
Лучшее из лучшего это, чтобы опытный Ораклист на это посмотрел на месте.
Потому что есть смысл посмаривать за статиской и во время выполнения.
Кроме того, я ставлю под сомнение и вывод о том, что при отключенных кончтрейнах Оракл не может быть настроен на опережение второго продукта, например, значительное.
14 апр 05, 11:45    [1467558]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал...
Guest
Объясните мне, в чем же цимес этой победы? что, у Версанта появился контроль целостности данных на стороне хранилища, и он с этим своим контролем целостности обогнал Оракл на порядки?
14 апр 05, 11:56    [1467608]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Мимо пробегал...
Объясните мне, в чем же цимес этой победы? что, у Версанта появился контроль целостности данных на стороне хранилища, и он с этим своим контролем целостности обогнал Оракл на порядки?


Но я не сотрю на эту дискуссию как на некое соревнование. Просто в соседней ветке tygra поставил под сомнение мое высказывание

... но ООСУБД реально используются в этой сфере
(накопление измерительных данных) и довольно активно. Полагаю, что не последнюю роль здесь играет быстродействие при записи больших объемов хоть как-то структурированных данных.

tygra

И что, там быстродействие намного выше, чем в РСУБД? Что-то не верится.
И чем структурированные данные больше подходят к ООСУБД, чем к РСУБД?
Чего-то не пойму, пример дайте, дайте пример.


Вот я и привел пример. А уж какая там и у кого победа вы уж сами решайте.

Я же констатирую только вывод:

Реляционные СУБД (Oracle) при записи больших объемов хоть как-то структурированных данных могут быть сравнимы по скорости с ООСУБД (Versant FastObjects t7) только в случае .... отказа от контроля ссылочной целостности ! В ином случае они отстают по быстродействию НА ПОРЯДКИ !
14 апр 05, 12:07    [1467680]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал....
Guest
автор
Реляционные СУБД (Oracle) при записи больших объемов хоть как-то структурированных данных могут быть сравнимы по скорости с ООСУБД (Versant FastObjects t7) только в случае .... отказа от контроля ссылочной целостности ! В ином случае они отстают по быстродействию НА ПОРЯДКИ !


Эта, а что, при этом у OOСУБД контроль целостности таки остался? :) Или мы сравнивает то, что отключили, с тем, чего изначально и не было?
14 апр 05, 12:12    [1467709]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Нууу на самом деле там наверняко много чего можно пооптимизировать :)
Было бы из-за чего биться
14 апр 05, 12:26    [1467786]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Мимо пробегал....
автор
Реляционные СУБД (Oracle) при записи больших объемов хоть как-то структурированных данных могут быть сравнимы по скорости с ООСУБД (Versant FastObjects t7) только в случае .... отказа от контроля ссылочной целостности ! В ином случае они отстают по быстродействию НА ПОРЯДКИ !


Эта, а что, при этом у OOСУБД контроль целостности таки остался? :) Или мы сравнивает то, что отключили, с тем, чего изначально и не было?


Конечно. Контроль ссылочной целостности в ООСУБД обеспечивается.
14 апр 05, 12:30    [1467800]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Угу, на клиенте или сервере приложения.
Немножко не то, не находите ?
14 апр 05, 12:39    [1467857]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Мимо пробегал...
Guest
автор
Конечно. Контроль ссылочной целостности в ООСУБД обеспечивается.


Да ну?!

То есть ежелимы подключимся к этой ООСУБД вот так, а потом в таблице билетов попытаеся поменять OID персоны по фамилии Иванов (31) на число, которое в таблице персон отсутсвует - например 131 - то эта самая ваша ООСУБД не даст этого сделать?
14 апр 05, 12:45    [1467902]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Gluk (Kazan) , поясните, что вы имеете ввиду


PS:
Маленькая поправочка к Java-коду для Oracle (строка 138)

int j1 = d1.nextInt(1999999), j2 = 0;

должно быть

int j1 = d1.nextInt(1999999)+1, j2 = 0;
14 апр 05, 12:50    [1467942]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Мимо пробегал...
автор
Конечно. Контроль ссылочной целостности в ООСУБД обеспечивается.


Да ну?!

То есть ежелимы подключимся к этой ООСУБД вот так, а потом в таблице билетов попытаеся поменять OID персоны по фамилии Иванов (31) на число, которое в таблице персон отсутсвует - например 131 - то эта самая ваша ООСУБД не даст этого сделать?


Не даст.
14 апр 05, 12:54    [1467974]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Исходя из Ваших слов о пассивности сервера БД и неотъемлимости от него клиентского кода.

Разумеется я изменю свою точку зрения, если Вы докажете, что ограничения скажем внешних ключей проверяются Версантом на сервере. Допуская это, следует все-же помнить, что внешними ключами обычно дело не ограничивается (кстати есть как минимум два варианта их отработки).
Каким образом НА СЕРВЕРЕ Версанта реализуются триггеры ?
14 апр 05, 13:55    [1468431]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Gluk (Kazan)

... если Вы докажете, что ограничения скажем внешних ключей проверяются Версантом на сервере.


Ограничения целостности для ссылок (внешних ключей в терминологии РСУБД) отрабатываются на сервере БД.

Надо понимать, что ссылочная целостность в ООСУБД обеспечивается в силу самой архитектуры ООСУБД, а не какими-то особенными средствами. ООСУБД только проверяет наличие/отсутствие в хранилище объекта с заданным в ссылке OID при записи новых данных. Сделать это достаточно легко, поскольку OID обычно уже содержит физический адрес объекта в хранилище. Впрочем, и здесь не все так уж распрекрасно (а так не бывает нигде и никогда). Проблемы с целостностью могут возникнуть и в ООСУБД. Но в известных мне продуктах это возможно только при некорректном удалении ранее введенных данных. Никакое редактирование к этим проблемам привести не может (OID объекта редактированию не поддается). С проблемами при удалении тоже можно бороться путем соотвествующих настроек.
14 апр 05, 14:46    [1468724]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Такая организация данных затрудняет формирование сводных отчетов.
Впрочем, мы опять ходим по кругу
14 апр 05, 14:56    [1468773]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1228
Действительно. Давайте продолжим. Версант порвал Оракла на вставке. Не он первый. MySQL тоже крут в этом плане, говорят.
Данные залились? Давайте теперь статистику получать.
14 апр 05, 15:08    [1468843]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Действитьельно, ходить по кругу не будем. Я уже писал, что на выборке все пока скорее в пользу Oracle складывается (похоже). Но готовые результаты пока не выкладываю - таковых пока в удобоваримом виде нет. Нужно подождать еще недельку-другую.
14 апр 05, 15:18    [1468884]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
Alexander A. Sak

Версант порвал Оракла на вставке.

Боюсь что таким способом один Оракл мог порвать другого Оракла.
Сомневаюсь, что такие тесты могут быть признанными образцовыми во всех отношениях. И тем более не уверен, что Оракл с отключенными внешними ключами не порвет Версанта с МуSQL вместе взятых, в немного более опытных руках. Обоих нет на общепризнанных тестах, где Оракл среди лидирующих.

Alexander A. Sak

Давайте теперь статистику получать.

Теперь поздно. Надо было во время закачки и опытному Ораклисту.
Кроме того, для чтения возможно надо было приментя секционирование или кластеризацию, если там соединения. Возможно параметры блоков другие при создании таблы прописать.
14 апр 05, 16:33    [1469311]     Ответить | Цитировать Сообщить модератору
 Re: Объектные СУБД от Versant Corporation (FastObjects .NET, FastObjects t7, Developer Suite)  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Угу, типа все могло бы быть наоборот, но я не знаю как этого достичь.

А я так считаю, если что-то "якобы можно", но никто не знает как этого достичь, то можно утверждать что "якобы можно" ~ "нельзя". А с отключенными констрейнтами и индексами всех порвет exe-шник, который будет тупо складывать данные в текстовый файл.
14 апр 05, 16:40    [1469349]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 22 23 24 25 26 [27] 28 29 30 31 .. 34   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить