У меня есть приложение, которое загружает огромный объем данных от Твиттера. Мы имеем, начал замечать некоторые проблемы производительности и таким образом, я устанавливаю SQL Profiler для базы данных приложений. Я заметил, что следующий SQL-оператор выполняется, но не появляется нигде в моем коде. Поэтому я предполагаю, что или SQL Server 2005 или ColdFusion 8 включают эти операторы по некоторым причинам.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET FMTONLY ON select Title from Links where 1=2 SET FMTONLY OFF
exec [sys].sp_datatype_info_90 -9,@ODBCVer=4
EXEC sp_executesql N'set implicit_transactions off select USER_NAME() select usertype,type,name from systypes where usertype>=257'
EXEC sp_execute 16,'iTunes Store'
exec sp_unprepare 28
Почему эти операторы добавляют, они необходимы, и если не, как я могу остановить их?
1,2,3,4 могут быть учтены в "обычном" коде ColdFusion - при условии, что вы используете версию 8 или 9. Он выполняет всевозможные операции в серверной части, чтобы убедиться, что сервер базы данных способен и готов к автоматически возвращать информацию, которую ColdFusion запрашивает как часть CFQUERY, даже если она не может быть явно вызвана в вашем фактическом запросе.
http://www.forta.com/blog/index.cfm/2007/7/6/ColdFusion-8-Can-Return-Identity-Values
Я понятия не имею, что делают 5 и 6.
Кроме того, используете ли вы предоставленный Adobe драйвер MS SQL или драйвер MS JDBC SQL? Между использованием двух драйверов есть некоторые различия:
http://cfsearching.blogspot.com/2008/03/cf8-ms-jdbc-12-driver-and-for-my-next.html
Нет ничего необычного в том, что в профилировщике появляются операторы, которые вы явно не отправляете себе из кода.
Но это ключевой момент - вы не явно отправляете их, но они неявно выполняются в результате действий, которые вы выполняете / того, как вы их делаете.
например. если вы открыли набор записей в VB6, а затем перебрали его, вы бы увидели (например) вызовы sp_cursor, проходящие через профилировщик - теперь они не вызываются явно кодом, а являются результатом продвижения ADO через подключенный набор записей.
Надеюсь, я понял какой-то смысл