Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Что дает вторая база данных


Автор: AleXGray 16.6.2008, 17:56
Доброго времени суток, ув. форумчане!

Я делаю веб-проект на базе нета и MSSQL 2005.

Так вот, в самом ТЗ есть  следующая фраза:

Код

Так как эта операция достаточно тяжелая предлагаю делать все это в отдельной БД, в которой держать таблицу, 
которая будет полностью дублировать    таблицу продуктов и над этой таблицей делать все сравнения


Так вот, меня интересует, действительно ли отдельная БД может давать выигрыш в производительности приложения? И за счет чего?
Допустим к базе данных идут обращения и параллельно с отдельной таблицей в этой БД (не той, к которой обращаются он-лайн пользователи) происходит какая-нибудь затяжная операция вставки, добавления записей и т.п.
Если эту таблицу над которой идет операция перенести в отдельную базу и выполнять операцию там, это что даст выигрыш в быстродействии приложения?

Автор: AleXGray 16.6.2008, 22:42
Я задал глупый вопрос?

Автор: skyboy 17.6.2008, 09:26
Цитата(AleXGray @  16.6.2008,  16:56 Найти цитируемый пост)
 действительно ли отдельная БД может давать выигрыш в производительности приложения?

потенциально - может. но надо все равно думать своей головой. провести замеры, в конце концов.
возможно, использование нескольких БД лишь добавить проблем с репликацией, не дав ничего взамен.
Цитата(AleXGray @  16.6.2008,  21:42 Найти цитируемый пост)
Я задал глупый вопрос?

странно ожидать, что в выходной понедельник на форуме толпа...

Автор: Akina 17.6.2008, 09:37
В зависимости от того, как построить систему и взаимодействие баз, можно получить и тормоза, и ускорение.
Например, можно ускорить работу за счет того, что в каждой из баз будет свой набор индексов, оптимизированный под задачи конкретной базы, и за счет упрощения системы прав и привилегий. А можно получить и изрядные тормоза - именно на операциях синхронизации данных.

Автор: Magnifico 17.6.2008, 11:00
теоретически если есть база в ней много таблиц и данные добавлялись  вразные таблицы попеременно
то в итоге таблицы будут сильно фрагментированы, т.к состоят из страниц по 8кб в види дву направленного списка

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

если данные только для выборки то лучше Курить Индекы и правильную оптимальную структуру самой БД

Автор: Akella 22.6.2008, 23:52
Цитата(AleXGray @  16.6.2008,  22:42 Найти цитируемый пост)
Я задал глупый вопрос?

а что, кто-то обязан отвечать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)