Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Медленный Oracle и быстрый MS SQL  [new]
ulvrid
Member

Откуда:
Сообщений: 24
Приветствую всех.

Есть такая задача: реализовать дерево каталогов и файлов средствами реляционной субд.
Соответственно имеем таблицу каталогов с внешним ключом на себя же, таблицу файлов с внешним ключом на таблицу каталогов, всё стандартно.
Реализуем на Oracle, точно также, с такой же структурой таблиц, реализуем MS SQL, делаем однотипные индексы
Хранимки немного отличаются ввиду различий PL-SQL и T-SQL

Далее, пишем программулину на C#, которая в 300-400 параллельных потоках активно создаёт каталоги, файлы, обновляет, удаляет, считывает их.
Для MS SQL - всё очень шустро, файлы кладутся в базу быстро, быстро считываются - и список, и содержимое. Используется стандартный System.Data.SqlClient.
Для Oracle - тупой запрос на получение списка файлов в каталоге(выборка возвращает не более 10 записей) может занимать сотни миллисекунд.
Если снизить число потоков до 5-10 то всё становится приемлемо, но при большом количестве одновременных обращений к БД резко падает производительность. Используется официальный ODP.NET

Оба сервера на одном компе - i5, 4гб оперативы, windows 7. MS SQL Express 2014 и Oracle 12c Standard, обращение по TCP из 100 мбит локалки.
Хотелось бы понять данный феномен. Заказчик очень хочет использовать Oracle.
3 ноя 15, 10:44    [18362828]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
ulvrid,

может Вам в форум по Ораклу лучше? скорее всего вопрос какими-то настройками решается
3 ноя 15, 11:04    [18362964]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
ulvrid
Для Oracle - тупой запрос на получение списка файлов в каталоге(выборка возвращает не более 10 записей) может занимать сотни миллисекунд.


Несколько сотел милисекунд для запроса -- это нормально.
А дальше -- всё зависит от того, какой запрос, какие таблицы, какие данные и т.д.
Вот с этим тебе и нужно разбираться.
Планы смотреть...
3 ноя 15, 15:23    [18364825]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SergSuper
ulvrid,

может Вам в форум по Ораклу лучше? скорее всего вопрос какими-то настройками решается


Посмотрел соотвествующий тред. А пример то показательный. Оба продукта "из коробки", задача проста до безобразия, ан нет, в одном случае всё работает из коробки, в другом нужны танцы с бубном.
3 ноя 15, 21:17    [18366597]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54849

pkarklin
А пример то показательный.

Угу, отлично показывает, что мелкомягкие продукты ни с чем кроме самих себя не дружат от
слова "вообще".

Posted via ActualForum NNTP Server 1.5

3 ноя 15, 21:35    [18366694]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
ulvrid,

О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".
3 ноя 15, 21:39    [18366709]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Yo.!
Guest
pkarklin
Посмотрел соотвествующий тред. А пример то показательный. Оба продукта "из коробки", задача проста до безобразия, ан нет, в одном случае всё работает из коробки, в другом нужны танцы с бубном.

да, оракл у не тот. в мое время студенты с гвоноподелками под винду просто не осиливали инсталяцию оракла.
но в чем вызывает уважение винвовс мир - стабильностью. студенты стабильно выбирают винду и odbc.
3 ноя 15, 21:42    [18366730]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
pkarklin
А пример то показательный.

Угу, отлично показывает, что мелкомягкие продукты ни с чем кроме самих себя не дружат от
слова "вообще".


Готов принять участие в тестировании? Начнем с этого:

Dimitry Sibiryakov
"Я вам не скажу за всю Одессу", но именно с С интерфейсом (ODBC) он тормозит как последний
слоупок.


ЗЫ. Осмелюсь только напомнить, что ODBC - разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификаций Call Level Interface (CLI), который разрабатывался организациями SQL Access Group, X/Open и Microsoft.

ЗЫЗЫ. А теперь можно приводить тест кейсы...
3 ноя 15, 21:44    [18366744]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Yo.!
Guest
Relic Hunter
О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".

я ставлю на коннекшен пул, он просто задолбал оракл кол-вом коннекций которые заметно дольше мсскл инициализируются
3 ноя 15, 21:47    [18366755]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
Yo.!
Relic Hunter
О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".

я ставлю на коннекшен пул, он просто задолбал оракл кол-вом коннекций которые заметно дольше мсскл инициализируются
коннекшен пул может быть пре-инициализированным. разницы быть не должно.
3 ноя 15, 21:50    [18366761]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Relic Hunter
ulvrid,

О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".


ТС как бы хранимки юзает. Чего там парсить?
3 ноя 15, 21:51    [18366766]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
pkarklin
Relic Hunter
ulvrid,

О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".


ТС как бы хранимки юзает. Чего там парсить?
А в хранимках что? :)
3 ноя 15, 21:56    [18366791]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
ungue
Member [заблокирован]

Откуда:
Сообщений: 496
ulvrid,

Ну не работает оно само по себе из коробки. Надо смотреть ожидания.
3 ноя 15, 22:01    [18366804]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Relic Hunter
pkarklin
пропущено...


ТС как бы хранимки юзает. Чего там парсить?
А в хранимках что? :)


А что, Oracle и MS SQL парсят хранимку при каждом ее вызове?
3 ноя 15, 22:05    [18366814]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54849

pkarklin
Готов принять участие в тестировании?

Со своей стороны я уже всё оттестировал. Теперь твоя очередь повторять мой эксперимент:
поставить MS SQL Express Edition и просто подключиться к нему из EMS SQL Manager. Потом
расскажи, почему этот процесс занимает почти минуту.

Posted via ActualForum NNTP Server 1.5

3 ноя 15, 22:07    [18366819]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
Relic Hunter
О оракла медленный парсинг, по сравнению с ms sql. Это всем известно. Первое - нужно использовать "bind variables".

я ставлю на коннекшен пул, он просто задолбал оракл кол-вом коннекций которые заметно дольше мсскл инициализируются


Я правильно понимаю, что если я не могу контроллировать количество открытий\закрытий подключений на стороне клиента, то единственный мой путь - это трехзвенка с коннешен пулом на "апп" лайере?
3 ноя 15, 22:08    [18366823]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7679
pkarklin
Relic Hunter
пропущено...
А в хранимках что? :)


А что, Oracle и MS SQL парсят хранимку при каждом ее вызове?
Парсятся не хранимки, а sql-запросы ее населяющие. Хард парс один раз - для каждого sql-ля если нет в кеше, плюс софт парс - каждый раз, на предмет наличия прав на объекты.
3 ноя 15, 22:10    [18366831]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
ungue
Member [заблокирован]

Откуда:
Сообщений: 496
pkarklin
Yo.!
пропущено...

я ставлю на коннекшен пул, он просто задолбал оракл кол-вом коннекций которые заметно дольше мсскл инициализируются


Я правильно понимаю, что если я не могу контроллировать количество открытий\закрытий подключений на стороне клиента, то единственный мой путь - это трехзвенка с коннешен пулом на "апп" лайере?


Нет. Есть настройка.

alter system set dispatchers="(protocol=TCP)(dispatchers=4)(pool=on)(tick=1)(connections=500)(sessions=1000)"
3 ноя 15, 22:12    [18366835]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
pkarklin
Готов принять участие в тестировании?

Со своей стороны я уже всё оттестировал. Теперь твоя очередь повторять мой эксперимент:
поставить MS SQL Express Edition и просто подключиться к нему из EMS SQL Manager. Потом
расскажи, почему этот процесс занимает почти минуту.


Наверно потому, что кто-то забыл, что в сетевой модель OSI семь уровней. И грех пенять на один уровень, если проблемы на другом. Хотя для тебя достаточно не забывать при локальном подключении указывать LPC: перед именем сервера.

ЗЫ. Нет, ни этого я ждал от тебя. Я ждал, что ты покажешь, как быстро MS SQL выполняет запрос из SQL Server Management Studio, которая использует .NET Framework SqlClient, и как "как слоупок" тормозит утилита командной строки sqlcmd.exe, которая написана на сях и использует ODBC.
3 ноя 15, 22:18    [18366852]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Relic Hunter
pkarklin
пропущено...


А что, Oracle и MS SQL парсят хранимку при каждом ее вызове?
Парсятся не хранимки, а sql-запросы ее населяющие. Хард парс один раз - для каждого sql-ля если нет в кеше, плюс софт парс - каждый раз, на предмет наличия прав на объекты.


Т.е. у Oracle проблемы с софт парс (разрешение прав), если мы допустим, что планы всех инструкцией внутри хранимки закэшированы?
3 ноя 15, 22:24    [18366875]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
ungue
Member [заблокирован]

Откуда:
Сообщений: 496
pkarklin
Relic Hunter
пропущено...
Парсятся не хранимки, а sql-запросы ее населяющие. Хард парс один раз - для каждого sql-ля если нет в кеше, плюс софт парс - каждый раз, на предмет наличия прав на объекты.


Т.е. у Oracle проблемы с софт парс (разрешение прав), если мы допустим, что планы всех инструкцией внутри хранимки закэшированы?


У Оракла могут быть любые проблемы. Но все они решаются специальными настройками или выбором специального оборудования. ТС надо смотреть ожидания. И трассировку 12 уровня снять. И обратиться к специалисту.
3 ноя 15, 22:27    [18366887]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
Yo.!
Guest
pkarklin
Я правильно понимаю, что если я не могу контроллировать количество открытий\закрытий подключений на стороне клиента, то единственный мой путь - это трехзвенка с коннешен пулом на "апп" лайере?

нет. можно кол-во диспатчеров поднять, можно коннектится к пулу оракла, можно вообще оракл в режиме MTS запустить.
3 ноя 15, 22:30    [18366897]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ungue
У Оракла могут быть любые проблемы. Но все они решаются специальными настройками или выбором специального оборудования. ТС надо смотреть ожидания. И трассировку 12 уровня снять. И обратиться к специалисту.


Т.е. ты констатируешь тот факт, что на простой задаче MS SQL в редакции Express "из коробки" без настроек и специалиста порвал OSE как тузик грелку?
3 ноя 15, 22:34    [18366913]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Yo.!
pkarklin
Я правильно понимаю, что если я не могу контроллировать количество открытий\закрытий подключений на стороне клиента, то единственный мой путь - это трехзвенка с коннешен пулом на "апп" лайере?

нет. можно кол-во диспатчеров поднять, можно коннектится к пулу оракла, можно вообще оракл в режиме MTS запустить.


Ок. Спасибо! Буду знать.
3 ноя 15, 22:35    [18366922]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Oracle и быстрый MS SQL  [new]
ungue
Member [заблокирован]

Откуда:
Сообщений: 496
pkarklin
ungue
У Оракла могут быть любые проблемы. Но все они решаются специальными настройками или выбором специального оборудования. ТС надо смотреть ожидания. И трассировку 12 уровня снять. И обратиться к специалисту.


Т.е. ты констатируешь тот факт, что на простой задаче MS SQL в редакции Express "из коробки" без настроек и специалиста порвал OSE как тузик грелку?


Да, для такой задачи, если не предполагается масштабирования, либо настройки системы, оракл, очевидно избыточен. Используйте MS SQL в редакции Express.
3 ноя 15, 22:36    [18366923]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить