MS SQL Server or MS Server + MS Access

Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

MS SQL Server or MS Server + MS Access

Post by Чулпан »

Сейчас пишу dating site на ASP.NET / IIS и MS SQL Server, причем WWW и MS SQL Server - на разных серверах. Много разных фич, одна из них - Instant Messaging.
Эта Instant Messaging также сделана на ASPX, страница сама себя обновляет каждые 5 секунд, что создает нехилую нагрузку на MS SQL Server. Поэтому заказчику (да и мне тоже) показалось правильным снизить нагрузку за счет выноса таблицы содержащей IM сообщения в MS Access файл находящийся на WWW сервере.

Никто не может подсказать, даст ли такое решение ощутимую выгоду в скорости работы? Что обычно является более медленным звеном в интернет-системе: База данных или сервер содержащий ASPX файлы?
ASPX файлы включают много caching опций для ускорения работы, но большинство запросов на файлы все равно уникальны.
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: MS SQL Server or MS Server + MS Access

Post by Dmitry67 »

Чулпан wrote:1
причем WWW и MS SQL Server - на разных серверах.

2
каждые 5 секунд, что создает нехилую нагрузку на MS SQL Server.

3
Что обычно является более медленным звеном в интернет-системе: База данных или сервер содержащий ASPX файлы?


1 Это правильно !
2 Почему ? Сколько всего страниц одновременно себя обновляют ? То есть сколько обновлений в секунду всего ?
3 Разумется IIS узкое место. Обычно CPU utilisation IIS улетает в 100% когда сервер базы еще на 10-15%. Конечно если база правильно написана. Дизайн базы кривой, то CPU будет тоже не выше 10-15%, но будет куча обащений и ожиданий диска.
При Load balancing обычно 2-3-8... серверов IIS подключают к ОДНОЙ базе MS SQL и она все это тянет.

Итак вопросы:
1. У Вас реально работает медленно или это предположение ?
2. Если медленно то каково CPU IIS и SQL ?
3. Сколько запросов/сек идет на MS SQL (запустите SQL trace)
4. Вы используете connection pooling ? Если нет то почему ?
5. Если да и ваши запросы не используют хитрые опции SET и USE database, уменьшите количество запросов почти в два раза поставив Connection reset=false.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
YellowMan
Уже с Приветом
Posts: 1099
Joined: 30 Sep 1999 09:01
Location: Bryansk,RUSSIA >> Dublin, Ireland

Post by YellowMan »

Если у Вас эта конструкция действительно тормозит, не пожалейте потратить день на возню с Performance Monitor и найти действительное горлышко бутылки - по моему мнению Вы ничего не выиграете в плане скорости, перенеся часть данных в Access, зато приобретете кучу головной боли в плане синхронизации и многопользовании.
Удачи@С.Смирнов
Чулпан
Новичок
Posts: 28
Joined: 17 Jun 2003 04:41

Re: MS SQL Server or MS Server + MS Access

Post by Чулпан »

Dmitry67 wrote:0. Сколько всего страниц одновременно себя обновляют ? То есть сколько обновлений в секунду всего ?
1. У Вас реально работает медленно или это предположение ?
2. Если медленно то каково CPU IIS и SQL ?
3. Сколько запросов/сек идет на MS SQL (запустите SQL trace)
4. Вы используете connection pooling ? Если нет то почему ?
5. Если да и ваши запросы не используют хитрые опции SET и USE database, уменьшите количество запросов почти в два раза поставив Connection reset=false.


0. При максимальной расчетной нагрузке в 300 пользователей получается 60 запросов в секунду

1. Реально работает медленно на старой версии написанной на чистом АСПе и безобразно спроектированной БД. Как будет вести себя новая система (переписанная на АСП.НЕТ и с перепроектированной БД) в продакшн сказать не могу - работает только в тестовом режиме с 1-3 пользователями.
Дополнительный минус - оба сервера (WWW и SQL Server) содержат еще дополнительно около десятка ДРУГИХ сайтов. Как они спроектированы (хорошо или плохо) я не знаю.

2.
CPU IIS - 7-40%
CPU SQL - 2-30%

3. Запустить SQL trace? А как это сделать? :oops:
Если я запускаю Profiler - там все пролетает со свистом и я не успеваю пересчитать вручную. 8O

4. Вы используете connection pooling ?
А эта опция автоматизирована в ASP.NETе, что-то не могу найти?
Или Вы имеете в виду не закрывать connection каждый раз вручную при обращении к базе и хранить в application переменных?

YellowMan wrote:Если у Вас эта конструкция действительно тормозит, не пожалейте потратить день на возню с Performance Monitor и найти действительное горлышко бутылки - по моему мнению Вы ничего не выиграете в плане скорости, перенеся часть данных в Access, зато приобретете кучу головной боли в плане синхронизации и многопользовании.


Насчет головной боли - это точно. Сихронизация Accessа и SQL Serverа уже видится мне чересчур сложной и медленной, например теперь отправить Bulk IM to everybody невозможно с помощью одного селекта.
Performance Monitor - это фича ДОТ НЕТа?
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: MS SQL Server or MS Server + MS Access

Post by Dmitry67 »

Чулпан wrote:0. При максимальной расчетной нагрузке в 300 пользователей получается 60 запросов в секунду

3. Запустить SQL trace? А как это сделать? :oops:
Если я запускаю Profiler - там все пролетает со свистом и я не успеваю пересчитать вручную. 8O

4. Вы используете connection pooling ?
А эта опция автоматизирована в ASP.NETе, что-то не могу найти?


0. Для нормальных операторов (без table scan) 60 запросов в секунду - это просто НИЧТО

3. Там есть кнопочка Stop :)
Запустите его на минуту, потом пересчитайте
Или сделайте save as в йайл или таблицу для анализа
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

Return to “Вопросы и новости IT”