Может ли Coldfusion использовать методы / объекты Java для повышения производительности cfquery? - PullRequest
0 голосов
/ 22 декабря 2009

Мне интересно, есть ли java-методы / объекты, которые могли бы стать альтернативой cfquery, которые бы разрешали переменную очистку и улучшали методы кэширования.

Я знаю, что вы можете использовать информационную схему для получения типов данных и длины символов, а затем использовать ее для проверки типа данных и длины переменных в запросе.

Но когда все переходят на использование cfqueryparam для переменных связывания и очистки переменных, это также предотвращает использование кэширования в cfquery.

Так что я надеялся, что есть лучшие способы или сценарии для увеличения производительности и масштабируемости ...

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

Вместо этого нам пришлось годами вычислять, как долго мы хотим кэшировать cfquery в Coldfusion, который не дает большого контроля или понимания того, когда данные были изменены или нет ..

Имеет ли это смысл?

Ответы [ 3 ]

5 голосов
/ 22 декабря 2009

Во-первых, давайте устраняем заблуждение. На CF8 + вы можете кэшировать запросы, использующие cfqueryparam. Я не совсем уверен, что вы подразумеваете под «всеми обращающимися», поскольку его использование уже давно считается лучшей практикой.

Итак, я думаю, что ваш вопрос на самом деле спорный. В то время как вы можете кэшировать запросы вручную (и я делаю это для других типов данных), cfqueryparam давно не был причиной для этого.

1 голос
/ 22 декабря 2009

Если вы ищете «альтернативный» метод доступа к данным, ORM (Object Relation Mapping) - это путь. Если вы используете CF9, библиотека Hibernate (Java) используется для управления доступом и кэшированием данных.

Пользователи CF7 + могут использовать библиотеку Transfer, созданную Марком Манделем для возможностей ORM.

0 голосов
/ 22 декабря 2009

В дополнение к ответу jarofclay я хотел бы отметить, что Transfer ORM имеет встроенную систему кэширования (хотя в следующей версии это позволит использовать некоторые даже лучшие существующие решения), вот как обеспечивает лучшую производительность.

В любом случае, мне лучше начать с оптимизации схем и запросов, а также попытаться использовать кеширование, это может быть сделано на действительно разных уровнях: от запросов к базе данных до визуализированного содержимого.

Например, новая версия Railo поддерживает некоторые механизмы кэширования корпоративного уровня, такие как ehCache.

IMO, это лучший способ решить задачу производительности, чем пытаться связываться с Java и запросами. Если я правильно понимаю вещи, они все равно будут работать через одни и те же источники данных, возможно, даже с одним и тем же байтовым кодом.

...