Я пытаюсь кэшировать хранимую процедуру. Я загружаю ColdFusion 10, и он работает на сервере Railo 4. У меня есть настройка подключения к базе данных в моем администраторе Railo (кеш по умолчанию), и в соответствии с документами Adobe мне нужно только использовать атрибут cachedWithin
, и он должен быть кэширован. Тем не менее, это не так, и я знаю это точно, потому что мои страницы занимают более 10 секунд. загружать!Кэширование хранимой процедуры в ColdFusion
Я попытался динамически кэшировать его с помощью тегов cfcache
вокруг хранимых процедур, но это продолжало кэшировать всю страницу, которую я не хочу кэшировать. CachePut
и CacheGet
также работают, но мой код - это сложный способ для их эффективного размещения.
Super confused.
Вот соответствующий код:
<cfstoredproc datasource="#XXX#" procedure="XXX" cachedWithin="#CreateTimeSpan(0,3,0,0)#">
<cfprocparam type="In" value="#IDate#" cfsqltype="CF_SQL_TIMESTAMP">
<cfprocparam type="In" value="12" cfsqltype="CF_SQL_INTEGER">
<cfprocparam type="In" value="1" cfsqltype="CF_SQL_BIT">
<cfprocresult name="DeptQuery">
</cfstoredproc>
UPDATE: Оказывается, что хранимая процедура не один принимает все это время! И у меня есть кэш наконец! Но я смущен тем, как это происходит, поскольку я кэширую 1000 вариантов одной и той же хранимой процедуры на нескольких страницах (причем каждая страница имеет несколько хранимых процедур), и все, что я указал, является параметром cachedWithin. Как он узнает, какая процедура является, когда она подтягивает их к виду?
_my страницы занимают более 10 секунд. toload_ - Вы уверены, что это запрос хранимой процедуры, который занимает все это время, или это обработка результатов запроса занимает время? Включите отладку и посмотрите на выход. Это не только покажет вам, если запрос (ы) кэшируется или нет, но также покажет вам, где ColdFusion тратит время обработки. Вы используете тег 'cfstoredproc' или тег' cfquery'? Это помогло бы, если бы вы показали нам какой-либо соответствующий код. –
Кроме того, поместите тег cfabort после вызова вашего SP. Поскольку все, что вас интересует, это время выполнения, тег abort получит это быстрее. –
Я использовал тег cfdump, но он не детализирует кеширование. –