2013-02-20 2 views
2

Я привык к Adobe ColdFusion и было кэширование запросов с использованием cachedafter с «простой» дата:Запрашивается ли мой запрос?

<cfparam name="application.icons_last_changed" default="#now()#"> 
<cfquery name="get_icons" cachedafter="02/02/1978" datasource="#application.datasources.main#"> 
SELECT icon_id, icon_name 
FROM REF_Icon 
WHERE #application.icons_last_changed#=#application.icons_last_changed# 
ORDER BY sort_order 
</cfquery> 

я перешел мой проект от ColdFusion/MSSQL к Railo/PostgreSQL. Сегодня что-то в диагностике Railo привлекло мое внимание.

  • Я привык видеть "get_ref_icon (Datasource = , рабочие процедуры Время = кэшируюсь, отчеты = 39) в /path/qry_get_ref_icon.cfm"
  • но в Railo я вижу «get_ref_icon (Datasource = Workstream, Время = 0,974 мс, Records = 39) в /pathqry_get_ref_icon.cfm ".

Думая, что возможно простое значение данных («02/02/1978») для cachedafter не поддерживается Railo, я попытался установить дату с createodbcdatetime('1978-02-02 16:37:00'), но это не похоже, чтобы сделать разницу.

Конечно, 0.974 мс - это такое маленькое время, что, возможно, запрос кэшируется, а Railo просто не так явно, как ColdFusion.

Является ли мой запрос получающим кеширование, или я об этом не ошибаюсь?

+0

Случается ли это все время? –

+0

Да - много точек данных для этого, когда я сравниваю вывод диагностики ColdFusion с выходом диагностики Railo. –

+0

И это не простой случай поиска диагностики при первом запуске запроса? Кроме того, действительно ли Railo демонстрирует ту же самую информацию об отключении, которая доступна для ColdFusion? –

ответ

3

Нет, запрос не кэшируется.

Я последовал предложению Busches лет и рассмотрел результаты от <cfdump var="#get_icons#" />:

Query 
Template:/super/double/secret/path/qry_get_ref_icon.cfm 
Execution Time (ms):0.624 
Recordcount:39 
Cached:No          <--UH OH, SPAGHETTI-O's 
Lazy:No 
SQL: 
SELECT icon_id, icon_name 
FROM REF_Icon 
WHERE active_ind=1 /*{ts '1978-02-02 16:37:00'}*/ 
AND {ts '2013-02-20 22:25:14'}={ts '2013-02-20 22:25:14'} 
ORDER BY sort_order 

Потому что я недоверчивый типа, я последовал предложение Адама Камерона и изменил некоторые данные затем перезапустил запрос. Результаты запроса обновлены, поэтому кэширование не происходит.


Я сообщил о проблеме на прекрасных людей Railo: https://issues.jboss.org/browse/RAILO-2318

+0

Я также обновил до версии Railo 4.0.3.005 final ... до сих пор не кэшируется. –

+0

В источнике Railo имеется код, относящийся к cachedafter, поэтому он, кажется, поддерживается и, следовательно, работает; попробуйте выполнить 'cachedwithin = 1', чтобы проверить, если это проблема, или есть еще одна проблема, препятствующая кэшированию. –

+0

'cachedwithin =" 1 "' работает. Так что это только 'cachedafter' ... –