Simples query-of-queries
Problema:
Um grande conjunto de dados pode causar problemas de desempenho se um aplicativo precisar consultar o banco detalhadamente para chegar a dados específicos.
Solução:
ColdFusion permite queries executarem sobre outras queries existentes com um sub-grupo de comandos SQL ádisponiveis para uso.
Explicação detalhada:
Seum aplicativo tem uma grande query que é executada e então precisa filtrar dados, não é sempre bom para o desempenho fazer uma viagem ao database para recuperar os dados filtrados. Carregando a grande query em memória e usando a funcionalidade query-of-queries do ColdFusion é uma solução fácil. Por exemplo, um catálogo de produtos é sempre pesquisado em qualquer número de variáveis tais como categoria, faixa de preço, médias, etc.
A query principal de produtos pode ser carregada no escope application no método onApplicationStart do Application.cfc.
<cfquery name="APPLICATION.qGetProducts" datasource="dsn">
SELECT *
FROM tbl_Products
</cfquery>
Usando uma query-of-queries o aplicativo pode filtrar o grande dataset sem ter que fazer outra viagem ao database. Em vez de fornecer um atributo datasource, a <cfquery> configura o atributo dbtype para a grande query e nas instruções SQL, a keyword FROM usa o nome da query em vez do nome da tabela.
<cfquery name="qGetProductsByCategory" dbtype="query">
SELECT *
FROM APPLICATION.qGetProducts
WHERE categoryId = <cfqueryparam value="#FORM.categoryId#" cfsqltype="cf_sql_integer" />
</cfquery>
Esta e uma grande ferramenta para ajudar o desempenho, entretanto voce está limitado a um específico sub-grupo de comandos SQL quando usar query-of-queries.
Tambem, lembre-se que voce pode usar query-of-queries em qualquer tag ColdFusion que produza um recordset, não somente a tag <cfquery>.
Versao em ingles: Adobe ColdFsuion Cookbook
0 responses to “Simples query-of-queries”