(Возврат на основную страницу)

 

Содержание номера за Февраль 2008 год

 

SQL Server для администраторов

Февраль 2008
№ 14 (20))

 

Дик Льюис

Часто задаваемые вопросы по использованию аргументов командной строки

 

Омри Бахат

Расшифровка объектов SQL Server

 

Александр Гладченко

Какая версия BOL установлена на компьютере?

 

Мафесами Ананта Кумар

Microsoft Windows PowerShell и SQL Server 2005 SMO. Часть 2

 

Александр Гладченко

SET DATE_CORRELATION_OPTIMIZATION ON?!

 

Дон Шлихтинг

Новое в SQL Server 2008. Часть 1

 

Саймон Сейбин

Какую спецификацию сервера выбрать?

 

Часто задаваемые вопросы по использованию аргументов командной строки

Дик Льюис

 

После того как администратор создал и успешно запустил свой первый простой сценарий командной строки (скажем, для диагностики сервера с помощью утилиты ping), он задумывается о том, как сделать так, чтобы было удобно повторно использовать данный сценарий при тестировании другого сервера или группы серверов. В результате он может прийти к выводу, что наилучшим решением было бы предусмотреть возможность ввода в сценарий некоторых входных данных, которые можно изменять. Если жестко запрограммировать эти входные данные, то при каждом их изменении придется соответствующим образом редактировать код сценария. Например, если явно задать имя компьютера, на котором требуется выполнить те или иные операции, то перед каждым запуском сценария на другом компьютере придется редактировать код. Данный подход не просто неудобен, он может послужить причиной непреднамеренного изменения кода сценария и, соответственно, привести к его некорректной работе. Предпочтительнее сохранить код сценария «в неприкосновенности» после его отладки, что обеспечит его нормальную работу в дальнейшем.

Если входные данные, которые предполагается передавать сценарию, имеют незначительный объем, тогда весьма эффективным решением для организации их ввода будет использование аргументов командной строки. Создав сценарий, управляемый аргументами, впоследствии можно легко преобразовать его для использования других технологий ввода данных в соответствии с новыми требованиями. Альтернативные технологии ввода данных рассматриваются во врезке «Возможные способы ввода данных». Чтобы помочь читателям разобраться в том, как работать с аргументами командной строки и избегать типичных ошибок, я собрал в данной статье несколько наиболее часто задаваемых вопросов.

 

Расшифровка объектов SQL Server

Простой скрипт на языке T-SQL позволит снять шифрование

Омри Бахат (Omri Bahat)

Когда пользователи создают хранимые процедуры, функции или другие объекты SQL Server, то текст кода этих объектов тут же становится доступным каждому, у кого есть достаточно прав (часто они минимальны). Понять, насколько просто увидеть содержимое объекта, можно просто создав хранимую процедуру и отобразив ее код в Query Analyzer, SQL Server Management Studio (SSMS), Windows PowerShell или инструменте для создания скриптов от третьей стороны. Во многих случаях разработчики и производители ПО хотят скрыть схему, лежащую в основе продуктов, чтобы защитить свою интеллектуальную собственность и конфиденциальную информацию. Простым способом достичь такой цели является указание предложения WITH ENCRYPTION внутри директивы CREATE или ALTER каждого внедряемого объекта. Тем не менее, не смотря на то, что опция WITH ENCRYPTION усложняет чтение и доступ к объекту, она не защищает код от более опытных пользователей (смотрите врезку «Краткий экскурс в кодирование и шифрование»). Таким образом, пользователи могут извлекать, править и изучать код, который в противном случае было бы не так легко заполучить. Простой кустарный алгоритм из этой статьи, реализованный на T­SQL, позволит вам расшифровать содержимое зашифрованных объектов базы данных.

В SQL Server 2000 содержимое текстовых объектов (например, хранимых процедур, функций, представлений, триггеров) хранится в системной таблице syscomments. В этой таблице содержится поле id, в котором хранится идентификатор объекта, и поле text типа NVARCHAR(4000), в котором хранится директива CREATE открытым текстом (возможно, в нескольких строках). Кроме того, поле ctext – это шестнадцатеричное представление соответствующей записи из поля text, что необходимо для процесса дешифрирования, описанного ниже.

В SQL Server 2005 текстовое содержимое каждого объекта доступно из системной таблицы sys.sql_modules. Здесь object_id – это идентификатор каждого объекта, а поле definition содержит текст объекта. Что достаточно интересно, шестнадцатеричный поток, требуемый для расшифровки, в sys.sql_modules отсутствует. Тем не менее, в SQL Server 2005 предлагается системная таблица syscomments – в качестве представления, совместимого с прошлыми версиями (в нем содержится поле ctext типа varbinary). Наличие этого представления намекает на то, что двоичное (или соответствующее шестнадцатеричное) представление DDL хранится в базе данных где­то еще. Чтобы выследить и найти двоичные данные, следуйте по указанным шагам.

 

Краткий экскурс в кодирование и шифрование

Для скрытия и защиты данных соответственно существует значительное число методов кодирования и шифрования. Распространенные примеры включают в себя турбо­коды или сверточные коды, которые часто используются для кодирования цифровых сигналов в каналах связи или в RSA, Blowfish и других методах хеширования. Сложность различных алгоритмов декодирования и дешифрирования часто оценивается по количеству памяти, требуемой для взлома потока сырых данных (иногда оно называется размером буфера). В SQL Server методом проб и ошибок было доказано, что предложение WITH ENCRYPTION кодирует (но не шифрует) текст объектов базы данных. Более того, размер буфера равен длине символа Unicode (т. е. 2 байтам). Другими словами, декодирование объектов, созданных при помощи предложения WITH ENCRYPTION, может оказаться достаточно прямолинейным.

Какая версия BOL установлена на компьютере?

Александр Гладченко

После того, как BOL стал обновляться через Microsoft Update (http://msmvps.com/blogs/irinanaumova/archive/2007/05/17/909765.aspx), этот вопрос, наверняка, будет волновать многих.

Самое простое, это заглянуть в оснастку установки и удаления программ, которая присутствует в списке панели управления. В ней можно увидеть подобную картину:

Последние выпуски BOL снабжены пометкой в скобках, когда вышла установленная версия. Будем надеяться, что так оно и будет впредь. Однако, не всегда есть возможность получить доступ к изображенной оснастке. В таких случаях, может помочь знание того, в каких ключах системного реестра хранятся эти значения. То, что мы наблюдаем в оснастке, берется из ветки системного реестра:

HKEY_CLASSES_ROOT\Installer\Products

В этом ключе расположен список идентификаторов установленных продуктов, и каждый такой идентификатор хранит под собой значения различных атрибут продукта, таких, как наименования, версия, локализация и т. п. Можно легко найти все установленные продукты, которые имеют отношение к SQL Server, если начать поиск по реестру, предварительно перейдя в корень показанной ветки, т.е. «подсветив» ключ Products, и введя в строку поиска фразу: «Microsoft SQL Server».

Каждая новая версия BOL получает новый идентификатор и мало того, свой идентификатор получает и каждый перевод BOL. Т.е. если Вы установили английскую и русскую редакции BOL, у Вас будет два разных идентификатора, а после того, как вы установите BOL для SQL Server 2008, добавиться еще и третий. Кроме заметных различий в названиях (текст, который помещен на рисунке в скобках) и различий в идентификаторах, каждое такое издание имеет два варианта внутренних версий. Один вариант версии BOL можно увидеть, если попытаться воспользоваться кнопкой «Отправить отзыв» (Send Feedback), которая располагается в нижнем колонтитуле каждой статьи BOL. Для доставки отзыва используется обычное письмо, в теме которого можно увидеть примерно такой текст, вначале которого можно заметить внутреннюю версию:

/1:SQL/2:9.0000.7103.1552/3:1.0/4:sqlgtst9/5:ms-elp://MS.SQLCC.v9/MS.SQLSVR.v9.ru/sqlgtst9/html/91ddee3a

Однако, совершенно другую версию BOL Вы увидите в соответствующем ключе системного реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server 2005 Redist\BOL\

Ниже, представлена таблица, в которой сведены названия и разные версии BOL, с которыми на момент написания этого сообщения удалось столкнуться автору.

Чтобы узнать версию BOL подключившись к серверу, например, в Management Studio, и выполнив сценарий на T­SQL, вы можете использовать доступный по следующей ссылке код: BOL Versions (2007/06/06) (http://msmvps.com/blogs/gladchenko/pages/946284.aspx).

О том, как осуществляется загрузка и обновление BOL, можно почитать тут: «Загрузка и обновление электронной документации» (http://msdn2.microsoft.com/ru­ru/library/91ddee3a­98d9­4419­a19c­­26d06b816ac6.aspx).

Табл. 1

Название

Version

Feedback

Microsoft SQL Server 2005 Books Online (English)

9.00.1399.06

9.0000.6089.0206

Microsoft SQL Server 2005 Books Online (English)
(February 2007)

9.00.3062

9.0000.7028.1803

Электронная документация по Microsoft SQL Server 2005 (на русском языке) (февраль 2007)

9.00.3068

9.0000.7103.1540

Microsoft SQL Server 2005 Books Online (English)
(May 2007)

9.00.3070

9.0000.7138.2105

Microsoft SQL Server "Katmai" Books Online

10.0.1019.17

10.0000.7116.0234

 

Microsoft Windows PowerShell и SQL Server 2005 SMO. Часть 2*

Мафесами Ананта Кумар (Muthusamy Anantha Kumar), он же MAK

В части 1 серии обсуждалось, как установить PowerShell и как использовать базовые команды PowerShell и SMO. В части 2 продолжается обсуждение PowerShell и его возможностей в сочетании со SMO.

Если вы обладаете хотя бы поверхностными знаниями таких языков, как PERL, Python или C, то сможете заметить определенное сходство с ними в синтаксисе при использовании PowerShell. Кроме того, он напоминает операционные системы, такие как UNIX, Linux, MS­DOS и т. д.

Хотя у него много возможностей, не все задачи можно решить только за счет PowerShell. Однако пробелы PowerShell можно восполнить использованием классов .NET и инструментальных средств управления средой Windows, также известных как WMI. Командлеты PowerShell можно автоматизировать, написав скрипты.

Заключение

В части 2 мы проиллюстрировали различные методы (WMI, классы .Net и т.д.), которые вы можете использовать, чтобы получить информацию от компьютера под управлением Windows и SQL Server.

* См. Мафесами Ананта Кумар. Microsoft Windows PowerShell и SQL Server 2005 SMO. Часть 1 // SQL для администраторов. 2007. № 11.

SET DATE_CORRELATION_OPTIMIZATION ON?!

Александр Гладченко

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

Оптимизация запросов, которые обращаются к коррелируемым столбцам типа datetime

В SQL Server 2005 появился новый параметр базы данных DATE_CORRELATION_OPTIMIZATION инструкции SET. Этот параметр улучшает производительность запросов, выполняющих эквивалентное соединение двух таблиц, у которых столбцы datetime коррелируют друг с другом, и содержащих ограничение на дату в предикате запроса.

Таблицы с коррелируемыми столбцами datetime, которые могут получить преимущество при включении параметра DATE_CORRELATION_OPTIMIZATION, обычно участвуют в отношении «один ко многим» и применяются, главным образом, для поддержки принятия решений, отчетов или хранения данных.

Например, в базе данных AdventureWorks столбец OrderDate таблицы Purchasing.PurchaseOrderHeader и столбец DueDate таблицы Purchasing.Purchase­OrderDetail коррелируют друг с другом. Значения даты в столбце PurchaseOrderDetail.DueDate слегка превышают значения в таблице PurchaseOrderHeader.OrderDate.

Если параметр базы данных DATE_CORRELATION_OPTIMIZATION включен, SQL Server собирает статистику корреляции между двумя таблицами базы данных, содержащих столбцы datetime и связанных ограничением внешнего ключа из одного столбца. По умолчанию этот параметр выключен.

Используя статистику корреляции вместе с ограничением на дату, заданным в предикате запроса, SQL Server выводит дополнительные ограничения, не влияющие на набор результатов. Оптимизатор запросов использует эти выведенные условия при выборе плана запроса. В результате может быть получен более быстрый план, поскольку благодаря новым ограничениям SQL Server считывает меньше данных при обработке запроса. Производительность также улучшится, если по обеим таблицам построен кластерный индекс, а столбцы datetime, для которых собирается статистика корреляции, являются первыми или единственными ключами кластерного индекса.

Новое в SQL Server 2008. Часть 1

Дон Шлихтинг (Don Schlichting)

SQL Server 2008 будет выпущен примерно в феврале 2008 года вместе с новыми версиями Visual Studio и Windows. CTP-сборка (Community Technology Preview) SQL Server 2008 сейчас доступна на скачивание с сайта Микрософт по следующей ссылке: http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx. В данной статье будут освещены некоторые из новых возможностей и преимуществ, заложенных в SQL Server 2008. (Теперь мы можем уточнить эту фразу, действительно, в феврале 2008 года состоится действо под название Launh — глобальное мероприятие, на котором будут представлены все три продукта, но реально в продаже SQL Server 2008 появится летом 2008 года.)

Заканчивается поддержка SQL 2000

Поддержка SQL 2000 по системе Mainstream подходит к концу. Возможности и преимущества данной поддержки включают в себя подачу запросов на изменение возможностей продукта, обновления безопасности, исправления, не касающиеся безопасности, и оплаченную поддержку. Эта поддержка для изданий SQL Server 2000 64­bit Edition, SQL Server 2000 Developer, SQL Server 2000 Enterprise, SQL Server 2000 Standard, SQL Server 2000 CE и SQL Server 2000 Workgroup Edition закончится 8 апреля 2008 года. Расширенная поддержка, состоящая из обновлений безопасности и оплаченной поддержки, продлится до 2013 года. Полное описание этапов поддержки можно найти по следующим ссылкам: Microsoft Support Lifecycle (http://support.microsoft.com/?LN=en­us&scid=gp;%5bln%5d;lifecycle&x=6&y=4) и Microsoft Support Lifecycle Policy FAQ (http://support.microsoft.com/gp/lifepolicy). Многие дистрибьюторы прекратят продажу SQL 2000 в декабре 2007 года. Также, никакая версия SQL 2000 не будет поддер­живаться на ОС Vista, включая и SQL 2000 Express.

Ключевые области

Что замечаешь первым делом при просматривании документации Микрософт по SQL Server 2008, так это новая классификация возможностей и преимуществ по группам, или ключевым областям (Key Areas). Существует четыре ключевые области: Enterprise Data Platform (платформа данных предприятия), Dynamic Development (динамическая разработка), Beyond Relational Database (за пределами реляционной базы данных) и Pervasive Insight (глубокое понимание). В статье мы рассмотрим эти группы, попытавшись удобно связать их со статьями Микрософт.

Enterprise Data Platform

Группа Enterprise Data Platform, иногда называемая Mission Critical Platform (критичная платформа), включает в себя ключевые возможности и преимущества механизма работы с данными SQL Server, включая методы шифрования данных, управление ресурсами, системный анализ и возможности управления сервером (Data Encryption methods, Resource Management, System Analysis и Server Management Features).

Шифрование

Существует несколько вариантов шифрования; первый называется Transparent Data Encryption (прозрачное шифрование данных). В SQL Server 2008 силами SQL Engine можно зашифровать целую базу данных. Метод зашифрует все файлы как данных базы, так и ее журнала. При использовании этого глобального метода шифруются все индексы и таблицы. Вносить изменения в программирование приложений не требуется.

Следующая возможность шифрования – Backup Encryption (шифрование резервных копий). В SQL Server 2008 введен метод шифрования резервных копий в целях предотвращения раскрытия данных или их порчи. Кроме того, восстановление из резервной копии можно разрешить только определенным пользователям.

Наконец, появились и новые возможности для External Key Management (управление внешними ключами). Если вы имеете дело с обработкой кредитных карт или PCI (индустрия платежных карт), то знайте, что SQL 2008 поддерживает Hardware Security Modules (HSM) — оборудование третьих сторон для хранения ключей в месте, отличном от расположения данных, которые они защищают.

Аудит

В придачу к стандартному аудиту входа/выхода из системы и изменений разрешений, SQL Server 2008 позволяет отслеживать изменения данных и доступ к ним. Аудит конфигурируется директивами T­SQL подобно следующему: AUDIT UPDATE(Salary) ON Employee TO MyAuditFolder WHERE Salary>200000.

Сжатие данных

Обычно сжатие данных связывается с простой экономией жесткого диска, а при меньшем размере физических файлов снижается и время на создание резервной копии. Все это верно в случае сжатия данных SQL Server, однако основной целью является снижение размера таблицы фактов. Указанные преимущества сжатия данных включают в себя следующее:

•    Увеличивается производительность запросов за счет снижения ввода/вывода и увеличения степени попаданий в буфер.

•    Предоставляется сжатие фактических данных реальных хранилищ данных в 2–7 раз.

•    Не влияет на другие возможности.

•    Сжатие доступно как для данных, так и для индексов.

По словам Микрософт, при использовании сжатия немного увеличится использование ресурсов процессора, однако суммарная производительность системы улучшится благодаря меньшему объему ввода/вывода.

Resource Governor
(управляющий ресурсами)

Нововведением в SQL Server 2008 стал управляющий ресурсами. Данное средство поможет запретить пользователям или группам пользователей потреблять большое количество ресурсов. Можно отслеживать пропускную способность процессора, время задержки, время исполнения, время блокирования и время простоя. При достижении порогового уровня, установленного управляющим ресурсами, система может вызвать событие или остановить процесс. Серия шагов, задействованных в использовании управляющего ресурсами, будет рассмотрена в следующей статье.

«Горячая» коммутация процессора

В SQL Server 2008 дополнительные процессоры можно добавлять «на лету», при условии, что это поддерживается оборудованием.

Данные о производительности

В SQL Server 2008 по сравнению с предыдущими версиями было увеличено число счетчиков производительности. Ввод/вывод и использование памяти – это лишь два примера того, какие данные можно собирать при мониторинге производительности. Данные, собираемые счетчиками, хранятся в централизованном хранилище данных. В Микрософт утверждают, что работа стандартного набора мониторов производительности будет потреблять менее 5% ресурсов процессора и памяти.

Также появился инструмент панели производительности, позволяющий считывать данные о производительности, сохраненные ранее. Кроме того, сравнение архивных и базовых значений может быть использовано для создания триггеров действий. Например, если использование памяти превышает порог дольше, чем пять минут, то может быть автоматически включен более детальный сбор данных.

Новинкой в SQL Server 2008 стала и Performance Studio (студия производительности). Студия представляет собой собрание инструментов производительности, которые вместе могут быть использованы для мониторинга, исправления неполадок, настройки и составления отчетов. Компонент сбора данных студии настраивается и имеет низкие накладные расходы. Он поддерживает несколько методов сбора, включая запросы TSQL, SQL­трассировку и счетчики производительности (Perfmon Counters). Данные можно собирать и программно. Для собранных данных предлагаются опции построения отчетов углубления и агрегирования.

Микрософт указывает следующие шесть возможностей клиентской стороны студии производительности:

•    Инструментальная панель SQL Server.

•    Мониторинг производительности.

•    Анализ текущих и архивных данных.

•    Предложения по потенциальной настройке производительности.

•    Отчеты, основанные на наборах сбора данных.

•    Отчеты, основанные на MDW.

Установка

Установка и настройка SQL Server 2008 также претерпели изменения. Данные конфигурации и сам механизм SQL Server были разделены, так что теперь можно создать образ диска базовой несконфигурированной системы, что делает более простым распространение на другие сервера. Также при установке можно получить новейшие обновления с веб­сайта Микрософт. Еще одна возможность – установка SQL Server, служебного пакета и пакетов исправлений в одном шаге. Соответственно, служебные пакеты можно и деинсталлировать.

Заключение

SQL Server 2008 предоставляет множество значительных возможностей. В части 2 данной серии мы разберем разработку, интеграцию, бизнес­аналитику и новые типы данных.

Какую спецификацию сервера выбрать?

Саймон Сейбин (Simon Sabin)

В конце презентации, касающейся SQL Server и оборудования, меня неизбежно спрашивают что-то вроде: «Какие технические требования предъявляются к серверу, если я использую его для работы некое ПО x?» Мой ответ неизбежно начинается так: «Вы знаете, все зависит от обстоятельств…»

Если бы люди подумали над вопросом немного больше, они бы, наверное, поняли, как трудно дать на него хоть сколько­нибудь осмысленный ответ. Это сродни спросить незнакомца о том, как, по его мнению, вам следует добраться до работы. Чтобы посоветовать вам что­нибудь, потребуется ответить на все следующие вопросы:

•    Где вы работаете?

•    Работаете ли вы только в одном месте?

•    Есть ли у вас предпочтения по методам передвижения?

•    Когда вам нужно быть на работе?

•    Нужно ли вам ехать с кем­то вместе?

•    Нужно ли вам добраться на работу, несмотря ни на что?

•    Сколько вы можете потратить на поездку?

•    Есть ли у вас ограничение по времени на транспортировку?

•    Нравится ли вам во время поездки заниматься чем­то еще, например чтением?

•    Как долго вы собираетесь работать в том месте?

•    Какие виды транспорта вам доступны?

Другими словами…все зависит от обстоятельств.

В области ИТ все вышеприведенные вопросы можно перевести в эквивалентные об оборудовании:

•    Для чего вы используете оборудование?

•    Оборудование нужно различным приложениям?

•    Какое оборудование вы можете использовать, есть ли у вас предпочитаемый поставщик, можно ли использовать только сервера 1U?

•    Какое время отклика вы хотите получить?

•    Есть ли у вас уже оборудование, с которым нужно считаться?

•    Нужна ли вам избыточность в инфраструктуре?

•    Каков ваш бюджет на оборудование?

•    Сколько у вас пользователей?

•    Какие типы пользователей?

•    Какие приложения вы планируете использовать в будущем?

•    Какие навыки есть в организации?

Каждый ответ имеет множество вариантов возможных ответов, что выразится в огромном числе перестановок. Даже если у вопроса было бы только четыре варианта ответа, то все равно получается один миллион перестановок, которые должен произвести некто на сеансе вопросов и ответов или на презентации.

Конечно, будут такие вопросы, на которые вы не сможете ответить, так что нужно будет сделать умное предположение. Если вам нужна формула для расчета спецификации системы баз данных, то я бы использовал такую:

Спецификация оборудования = ((GB+ U) x S + DR) x 1

DIQ                 BIQ

BIQ = Предметные знания о том, чем они будут заниматься в следующие три года;

DIQ = Знания и опыт в разработке производительных/масштабируемых систем;

GB = Объем данных;

U = Количество пользователей;

S = Реактивность системы;

DR = Требование дистанционного считывания (DR).

Это уравнение диктует, что

•    Чем больше данных, тем больше система.

•    Чем меньше опыт разработчиков, тем больше система.

•    Чем больше пользователей, тем больше система.

•    Чем быстрее нужна система, тем она больше.

•    Чем меньше знания о том, что они собираются делать, тем больше система.

К тому же, следующее уравнение поможет вам оценить объем затрат, которые придется потратить на поддержку оборудования:

Цена поддержки = 2(Calc/Act),

где Calc = Рассчитанная стоимость оборудования,

Act = Реальные затраты на оборудование

Если вы заранее не заплатите столько, сколько должны, то можете потратить больше на поддержку в дальнейшем.

Проще говоря: все зависит от обстоятельств. Тем не менее, «зависит от обстоятельств» не подводит вас ближе к ответу. Так с чего же начать? При условии, что оборудование дешевое (3000 фунтов стерлингов за 8­процессорный сервер с 8 Гб оперативной памяти), а рабочее время дорогое, вот мои рекомендации:

1.  Приобретите столько памяти, сколько сможете; вам нужно как можно больше базы данных в памяти.

2.  Обеспечьте себе достаточно быстрый диск, одна транзакция – это, по крайней мере, одна операция ввода/вывода, так что если вы хотите иметь 1000 транзакций в секунду, то вам потребуется 1000 операций на журнал.

3.  Обеспечьте себе достаточно быстрый диск (да, я знаю, что повторяюсь), чтобы если не сможете обеспечить пункт 1, не слишком страдали.

4.  Если у вас многопользовательская система, то приобретите как можно больше процессоров, чтобы обрабатывать в единицу времени больше запросов.

5.  Если вы используете SAN, обеспечьте мониторинг его производительности; всех дисков, коммутаторов, всего. И не делите его с Exchange.

6.  Пишите хороший код, иначе пункты 1–5 не будут иметь смысла, если каждый запрос считывает слишком много данных, вызывает слишком много блокировок и приводит к тому, что ваша многопользовательская система превращается в однопользовательскую.

7.  Проведите тест вашего приложения на производительность, чтобы знать, какой у него пульс: как он использует процессор, память и диск? Стадион Wembley Stadium может быть большим, ведь он вмещает 90000 людей, но из него трудно выбраться, т. к. дороги и метро не менялись с 1930 года.

На моем текущем месте работы мы приобрели HP DL585 – за примерно 5 вы получаете 64­битный 4­процессорный сервер с 8 Гб оперативной памяти (без корпуса). Сейчас я рассматриваю рабочую станцию с ядром 2 x Dual с 16 Гб, 5 SATA дисков по 146 Гб за примерно 2500. Лично я предпочитаю чипы AMD dual core, поскольку можно будет сменить их на четырехъядерные, когда они появятся. Это простой и дешевый способ повышения уровня системы, если процессор является узким местом.

Я не говорил здесь о проблемах избыточности, высокой доступности или поддержки, будем надеяться, я рассмотрю эти вопросы в другой статье.

(Возврат на основную страницу)

Hosted by uCoz