ColdFusion, выполняющий нежелательные SQL-операторы

У меня есть приложение, которое загружает огромный объем данных от Твиттера. Мы имеем, начал замечать некоторые проблемы производительности и таким образом, я устанавливаю SQL Profiler для базы данных приложений. Я заметил, что следующий SQL-оператор выполняется, но не появляется нигде в моем коде. Поэтому я предполагаю, что или SQL Server 2005 или ColdFusion 8 включают эти операторы по некоторым причинам.

  1. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  2. SET FMTONLY ON select Title from Links where 1=2 SET FMTONLY OFF
  3. exec [sys].sp_datatype_info_90 -9,@ODBCVer=4
  4. EXEC sp_executesql N'set implicit_transactions off select USER_NAME() select usertype,type,name from systypes where usertype>=257'
  5. EXEC sp_execute 16,'iTunes Store'
  6. exec sp_unprepare 28
  • У меня нет cftransaction's в моем коде
  • Все мои запросы, работал от cfqueries. (никакие хранимые процедуры)
  • Я никогда не выполняю выполнение или исполнительный оператор никуда в моем коде
  • Все эти операторы, работал от моей учетной записи пользователя базы данных, конкретно настроенной для моего веб-приложения
  • Операторы в № 5 и № 6 копируются со многими различными числами
  • Оператор в № 5 копируется со многими различными строками

Почему эти операторы добавляют, они необходимы, и если не, как я могу остановить их?

5
задан Jason 11 February 2010 в 15:43
поделиться

2 ответа

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

4
ответ дан 14 December 2019 в 13:35
поделиться

Нет ничего необычного в том, что в профилировщике появляются операторы, которые вы явно не отправляете себе из кода.

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

например. если вы открыли набор записей в VB6, а затем перебрали его, вы бы увидели (например) вызовы sp_cursor, проходящие через профилировщик - теперь они не вызываются явно кодом, а являются результатом продвижения ADO через подключенный набор записей.

Надеюсь, я понял какой-то смысл

2
ответ дан 14 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: