Назад |
Перейти на главную страницу
Мониторинг транзакций SQL в ColdFusion Administrator?
Можно ли с помощью CF9, IIS и MSSQL отслеживать команды SQL, отправляемые сценарием? Желательно то, что показывает необработанный запрос.
У меня возникла эта идея, когда я увидел, что WEBrick и Ruby on Rails фактически выгружают генерируемые запросы в консоль, и мне стало интересно, есть ли у CF9 что-то подобное.
Есть несколько решений. Как отметил @squillman, вы можете просмотреть его в SQL Server через Profiler. Но прямо в CF у вас есть другие возможности.
- Вы можете включить вывод отладки CF, чтобы просмотреть информацию о запросе в конце запроса. Конечно, у этого есть свои плюсы и минусы. Если в разработке, то в целом хорошо. В продукте лучше избегать этого (даже если вы ограничиваете IP-адреса, которые могут просматривать выходные данные отладки, поскольку многие утверждают, что даже другие пользователи все равно оплачивают стоимость создаваемой отладки).
- Вы также можете записать информацию самостоятельно в коде. Начиная с CF7 появился новый атрибут RESULT, который содержит структуру с данными о запросе, включая оператор SQL. Вы можете записать это с помощью CFLOG, CFTRACE и других тегов (или связанных функций сценария).
- Вы также можете записать CF сам. В CF8 была добавлена малоизвестная функция: новый флажок в «дополнительных настройках» для определения источника данных (в CF Admin) позволяет вам «вести журнал активности». Будьте осторожны, это довольно многословно.
- Вы также можете использовать встроенные функции мониторинга в различных мониторах CF Server, будь то бесплатный, встроенный в CF Enterprise (или Developer, но не Standard), или сторонние, FusionReactor и SeeFusion. Однако CFSM фокусируется только на медленных запросах. FR и SF могут показать вам каждый запрос в рамках данного запроса (или все запросы на сервере, включая те, которые не связаны с каким-либо запросом, например, очистка клиентской переменной и т. Д.). Мне кажется, что в FR мне особенно нравится то, что он регистрирует каждый запрос (если вы включаете ведение журнала запросов), тогда как SF снова регистрирует только медленные запросы. (Каждый может быть заменен другим альтернативным.)
- Наконец, все эти инструменты ведут журнал запросов, обертывая драйверы JDBC. Вы также можете сделать это самостоятельно, вручную, без этих инструментов, используя любую из множества альтернатив оболочки jdbc. Просто погуглите обертку jdbc, и вы найдете много.
Я также более подробно рассказываю обо всех этих параметрах в своей записи в блоге, которая, хотя и сосредоточена на слежке за запросами ORM в CF, также применима к любым запросам, которые генерирует CF (и к любому движку CFML): Слежка за взаимодействиями с базой данных ORM: спящий режим, передача и т. Д. На любом движке CFML.
Наконец, я отмечу, что что касается использования SQL Server Profiler, обратите внимание, что у него тоже есть свои плюсы и минусы (он может генерировать гораздо больше деталей о запросах, доступных в качестве параметров, включая даже график плана выполнения для каждого запроса, что здорово, но это также, как и любой мониторинг, имеет некоторый риск накладных расходов в зависимости от того, как все настроено.Существует множество ресурсов для решения этой проблемы и решений.
Надеюсь, это поможет.
Для этого вы можете использовать SQL Server Profiler. Вам нужно будет настроить трассировку для захвата именно того, что вы хотите, но она определенно даст вам необработанный запрос.
Посмотри на эта статья MSDN для получения информации о Profiler.