|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
11.5.4. Оптимизация подключений к SQL Server 2005Клиентские подключения к SQL Server 2005: оптимизация, OLE DB, ODBC, BDE, замена ODBC на OLE DB при помощи файла UDL, SQL Native Client, пул подключений (connection pooling) Первый уровень оптимизации приложений с использованием SQL Server 2005 — это оптимизация подключений к серверу. Подключаться к SQL Server можно разными способами. Чаще всего используются три варианта: q подключение по OLE DB — наиболее рекомендуемый и современный вариант. Если клиентская часть реализована под Windows (что бывает в большинстве случаев), использование подключений по OLE DB — это и самый быстрый способ; q подключение по ODBC — унаследованный, но до настоящего времени очень популярный способ; q подключение с использованием BDE (Borland Database Engine) — обычно используется в приложениях, написанных на языке Delphi. Быстрее всего работают подключения по OLE DB. Причина проста: при подключениях такого типа полностью используются возможности COM-технологий. Кроме того, по сравнению с ODBC и BDE приходится производить меньшее количество преобразований. Выигрыш в скорости особенно заметен в тех случаях, когда с сервера на клиентский компьютер передается большое количество информации (например, при создании больших отчетов). Конечно, способ подключения выбирается разработчиками клиентских приложений (а они чаще всего выбирают наиболее привычный для себя вариант, а не самый быстрый). Однако существует прием, который позволяет заменить подключение по ODBC на подключение по OLE DB, при этом сделать это абсолютно прозрачно для приложения. Предположим, что у вас есть системный источник данных ODBC, который называется SQL1, настроенный на подключение к базе данных SQL Server 2005. Именно этот источник данных ODBC используется клиентским приложением. Переключить его на использование OLE DB можно следующим образом. Первое, что нужно сделать, — создать на диске файл подключения по OLE DB (файл UDL — User Data Link). Сгенерировать его в автоматическом режиме можно так: q создать на диске любой пустой файл (для этого, например, можно щелкнуть правой кнопкой мыши по пустому пространству в папке в Проводнике Windows и в контекстном меню выбрать Создать | Текстовый документ); q изменить у этого файла расширение на udl. Естественно, при этом должен быть включен показ расширений для известных типов файлов. Включить его можно на вкладке Вид в окне Свойства папки (меню Сервис в Проводнике); q обратите внимание, что после изменения расширения имени файла значок для данного файла в Проводнике изменился. Правда, файл пока пустой. Чтобы настроить в нем параметры подключения по OLE DB, достаточно щелкнуть по нему два раза мышью. Откроется окно настройки свойств подключения OLE DB; q на вкладке Поставщик данных необходимо выбрать нужный тип источника данных (в данном случае — Microsoft OLE DB Provider for SQL Server). Затем на вкладке Подключение необходимо настроить параметры подключения к SQL Server 2005 (например, так, как представлено на рис. 11.12). После этого рекомендуется нажать кнопку Проверить подключение, чтобы протестировать возможность установки соединения, и нажать кнопку OK, чтобы закрыть свойства файла с сохранением изменений.
Рис. 11.12. Настройка подключения по OLE DB Если открыть этот файл в Блокноте, то в нем будет готовая строка подключения, которую, например, можно использовать при создании клиентских приложений. Однако вам нужен сам файл. Следующее, что нужно сделать, — использовать этот файл для перенастройки источника данных ODBC. В соответствии с заданием, у вас есть системный источник данных ODBC (System DSN), который называется SQL1 и обращается к тому же серверу SQL Server 2005 с тем же режимом аутентификации. "Исправить" этот источник, чтобы он работал по OLE DB, можно очень просто: q откройте редактор реестра (набрав в командной строке regedit); q раскройте раздел HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\имя_вашего_источника_данных (в данном случае SQL1); q вместо файла DLL для параметра Driver (Драйвер) укажите созданный файл UDL (рис. 11.13).
Рис. 11.13. Замена подключения по ODBC на подключение по OLE DB После этого ваше приложение, обращаясь к этому источнику данных ODBC, на самом деле будет работать по OLE DB. В некоторых ситуациях это может существенно ускорить скорость передачи данных между сервером и клиентом. Отметим еще некоторые моменты, связанные с настройкой клиентских подключений к SQL Server: q в SQL Server 2005 предусмотрена специальная надстройка над OLE DB — SQL Native Client с большим количеством новых возможностей. Применение одной из таких возможностей, которая называется MARS (Multiple Access Result Set — множественные активные наборы результатов), в некоторых случаях позволит очень сильно повысить производительность при работе клиента с SQL Server. При использовании технологии MARS клиент может работать в асинхронном режиме и отправлять следующие запросы на SQL Server, не дожидаясь, пока придет ответ на запросы, отправленные ранее; q если клиентов у вас очень много (счет идет на сотни), и время установки соединения становится неприемлемым (типичная ситуация, например, для call-центра), то имеет смысл подумать о промежуточном сервере для обслуживания подключений пользователей. Обычно такой сервер работает с пулом открытых подключений к серверу SQL Server (технология называется connection pooling) и выдает свободные подключения пользователям.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||