Медленный Oracle и быстрый MS SQL
От: Ulvrid  
Дата: 03.11.15 07:41
Оценка:
Приветствую всех.

Есть такая задача: реализовать дерево каталогов и файлов средствами реляционной субд.
Соответственно имеем таблицу каталогов с внешним ключом на себя же, таблицу файлов с внешним ключом на таблицу каталогов, всё стандартно.
Реализуем на 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.
Re: Медленный Oracle и быстрый MS SQL
От: wildwind Россия  
Дата: 03.11.15 15:28
Оценка: +2
Здравствуйте, Ulvrid, Вы писали:

U> Хотелось бы понять данный феномен. Заказчик очень хочет использовать Oracle.


А нанять хорошего DBA он не хочет? Или хотя бы такого, который сможет зайти в Enterprise Manager и увидеть, где узкое место?

Причин может быть несколько. Нужно их находить.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.