У нас есть SQL Server 2005, работающий на Win2003 / 64, и мы очень стараемся. Мы генерируем отчеты в реальном времени по нескольким таблицам с парой миллионов записей, используя asp.net 3.5, и они периодически истекают по таймауту.
Я хотел бы увеличить нашу память с 8 ГБ до 16 ГБ или даже 32 ГБ, чтобы увидеть, как это поможет, но мне нужно объяснить это толкателям карандашей, прежде чем они потратят деньги. Может ли кто-нибудь указать мне на ресурсы, которые помогут мне обосновать свою правоту и дадут мне точные цифры для использования?





Сначала выясните, в чем действительно проблема и что сервер правильно настроен для выполняемых вами запросов. Очень грустно тратить деньги на оперативную память, чтобы узнать, что вы привязаны к вводу-выводу.
После того, как вы соберете данные о причине тайм-аутов, вы сможете легко убедить владельцев карандашей.
Некоторые ссылки для настройки / мониторинга:
http://www.brentozar.com/archive/2008/03/sql-server-2005-setup-checklist-part-1-before-the-install/ (проверьте обе статьи)
http://www.sql-server-performance.com/
О вводе-выводе конкретно:
http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx
http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1307990,00.html
http://www.novicksoftware.com/Articles/sql-server-io-statistics.htm
Я бы начал с профилирования и оптимизации запросов, насколько это было возможно.
Я бы создал систему тестирования и выполнял запросы, используя 1 ГБ ОЗУ, 2 ГБ ОЗУ, 4 ГБ ОЗУ и, наконец, 8 ГБ ОЗУ.
Я бы посчитал, как запросы будут вести себя с 16 или 32 ГБ ОЗУ (и покажу фактические значения времени и процентное увеличение - они это поймут), и построил бы красивый красочный график (такие карандаши).
Они не будут разбираться в технических аспектах, но поймут процентное увеличение и красивый график.
Но я бы повторил запросы еще раз, чтобы попытаться сначала их оптимизировать.
Не могли бы вы указать мне на некоторую информацию о том, как определить, проблема ли это ввода-вывода. Я гарантирую, что код и процедуры настроены настолько хорошо, насколько это возможно.