Как сделать мой код Coldfusion более эффективным, используя запросы - PullRequest
0 голосов
/ 09 мая 2018

У меня есть код, который я пытаюсь сделать более эффективным.

Я выполняю запрос, а затем перебираю эти результаты и запускаю дополнительные запросы, чтобы углубиться в мои данные еще дальше. Код занимает много времени для обработки, и я уверен, что он не так эффективен, как мог бы быть, и я считаю, что выполнение запросов запросов будет более эффективным, но я не уверен, как именно реализовать это.

Вот мой текущий код

Мой первый запрос:

<!--- Get equipment Query --->    
<cfquery name="get_equipment" datasource="#datasource#">
    select *
    from equipment_maintenance
    where machine_type != 'unifi_site' AND machine_type != 'firewall' AND machine_type != 'dvr' AND machine_type != 'pbx' AND active = 'yes'
    ORDER by #querySortType#
</cfquery> 

Затем я вывожу свой запрос и запускаю дополнительные запросы:

<cfoutput query="get_equipment">
    <!--- Get In-Progress Maintenance History --->
    <cfquery name="get_in_progress_history" datasource="#datasource#">
        select *
        from service_ticket
        where equipment_id=#id#
    </cfquery>

    OUTPUT SOME DATA

    <!--- Update due date in the database for this machine --->  
    <cfquery name="dueDate#id#" datasource="#datasource#">
        update equipment_maintenance
        set maintenance_due_date = #dueDate#
        where id = #id#
    </cfquery>

    OUTPUT SOME DATA

    <cfquery name="get_history" datasource="#datasource#">
        select *
        from equipment_service_history
        where equipment_id = #id#
    </cfquery> 
    <cfquery name="get_history_ticket_detail" datasource="#datasource#">
        select *
        from closed_tickets
        where equipment_id = #id#
        order by ticket_id DESC
    </cfquery>

    OUTPUT SOME DATA

    <cfloop query="get_history_ticket_detail">
        OUTPUT SOME DATA
    </cfloop>
</cfoutput>

В середине кода много HTML-кода для вывода моих данных, но это основная структура моего кода Coldfusion.

Я предполагаю, что мои множественные запросы в моем теге CFOUTPUT являются причиной проблем с производительностью? Как это можно исправить с помощью QoQ?

-Брайан

1 Ответ

0 голосов
/ 09 мая 2018

Это легко сделать.Измените оператор обновления на

<cfquery datasource="#datasource#">
update equipment_maintenance
set maintenance_due_date = #dueDate#
where machine_type != 'unifi_site' AND machine_type != 'firewall' AND machine_type != 'dvr' AND machine_type != 'pbx' AND active = 'yes'
</cfquery>

Нет необходимости давать ему имя, потому что он не возвращает никаких данных

...