Н. 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
сти к нулю результат всех усилий, направленных на оптимизацию работы остальных частей. Таким образом, проблема оптимизации работы информационной системы достигается путем решения нескольких задач: оптимизации клиентской части, оптимизации серверной части, снижения сетевого трафика.
Ниже мы рассмотрим некоторые приемы, способствующие в той или иной степени решению этих задач. Однако перед этим изучим один из простейших способов контроля содержимого запросов, пересылаемых на сервер баз данных библиотекой BDE, и результатов их выполнения с помощью утилиты SQL Monitor, входящей в комплект поставки C++Builder.
7.1      Контроль запросов с помощью SQL Monitor
SQL Monitor используется для контроля запросов, пересылаемых клиентским приложением серверу баз данных посредством BDE, и их результатов, а также измерения времени между ними. Для его запуска следует выбрать пункт SQL Monitor из меню Database среды разработки C++Builder. Главное окно SQL Monitor состоит из двух частей. В верхней части отображаются последовательно генерируемые SQL-предложения и сведения об откликах сервера, а также порядковый номер и время их наступления, а в нижней части - полный текст SQL-запроса. Список, отображаемый в верхнем окне, можно сохранить в файле для дальнейшего анализа. На рис. 7.1 представлен типичный вывод сведений при работе приложения, рассмотренного в главе 4.
И SQL Monitoi
Trace ЕпаЫЙ-:
Рис. 7.1.  Вывод сведений о выполнении сервером запросов в SQL Monitor
146
Оптимизация приложений C++Builder в архитектуре "клиент/серее"
При использовании SQL Monitor возможен выбор типов отображаемых сведений. Их можно выбрать в диалоге Trace Options, вызываемом из меню Options (рис. 7.2).
Trace Options
Рис. 7.2. Диалог Trace Options для выбора действий, отображаемых в SQL Monitor
SQL Monitor позволяет отображать сведения о следующих действиях: Prepared Query Statements - SQL-предложения, передаваемые на сервер; Executed Query Statements - SQL-предложения, готовые к выполнению
сервером;	/сптч-и Statement   Operations   -   действия,   выполняемые   сервером   (hbH-H,
EXECUTE и др.);	"
Connect/Disconnect - действия, связанные с установкой или разрывом
соединения с сервером;	^ /пт-^тм Transactions - действия, связанные с выполнением транзакции (BbUlN,
COMMIT, ROLLBACK);
Blob I/O - действия, связанные с передачей BLOB-полей;
Miscellaneous - другие действия;
Vendor Errors - 'сообщения об ошибках, возвращаемые сервером;
147