Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#2291 closed Aufgabe (fixed)

/admin/customers_status.php Performance

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.8.0
Component: Admin Version: 2.0.7.2
Keywords: Cc:
Blocked By: Blocking:

Description

Da ich auch kleinere Performance-Verbesserungen liebe, ist jedoch nichts Wichtiges:
Der folgende Code könnte in o.g. Datei

        // adopt customer prices
        if (isset($_POST['customers_base_status']) && !empty($_POST['customers_base_status'])) {
          if ($action == 'save') {
            xtc_db_query('TRUNCATE TABLE personal_offers_by_customers_status_' . $customers_status_id);
          }
          $products_query = xtc_db_query("SELECT price_id, products_id, quantity, personal_offer FROM personal_offers_by_customers_status_".(int)$_POST['customers_base_status']."");
          while($products = xtc_db_fetch_array($products_query)){
            $product_data_array = array(
                'price_id' => xtc_db_prepare_input($products['price_id']),
                'products_id' => xtc_db_prepare_input($products['products_id']),
                'quantity' => xtc_db_prepare_input($products['quantity']),
                'personal_offer' => xtc_db_prepare_input($products['personal_offer'])
              );
            xtc_db_perform('personal_offers_by_customers_status_' . $customers_status_id, $product_data_array);
          }
        }

könnte so weit effektiver sein (habe kein Benchmark dazu erstellt).
Wenn man sehr viele Artikel hat kann es ansonsten auch mal ins Timeout laufen.

          // adopt customer prices
          if (isset($_POST['customers_base_status']) && !empty($_POST['customers_base_status'])) {
            if ($action == 'save') {
              xtc_db_query('TRUNCATE TABLE personal_offers_by_customers_status_' . $customers_status_id);
            }
            xtc_db_query("INSERT INTO personal_offers_by_customers_status_".$customers_status_id." SELECT * FROM personal_offers_by_customers_status_".(int)$_POST['customers_base_status'])
            }
          }

Wenn nicht, könnte man um der Schönheit willen ;-) in dieser Zeile das überflüssige ."" am Ende entfernen:

            $products_query = xtc_db_query("SELECT price_id, products_id, quantity, personal_offer FROM personal_offers_by_customers_status_".(int)$_POST['customers_base_status']."");

Gruß,
noRiddle

Attachments (0)

Change History (3)

comment:1 by Torsten Riemer, 3 years ago

Milestone: modified-shop-2.0.8.0

comment:2 by Gerhard Waldemair, 3 years ago

Resolution: fixed
Status: newclosed

In 14835:

fix #2291 - optimize performance

comment:3 by Gerhard Waldemair, 3 years ago

In 14854:

revised r14835 (fix #2291 - optimize performance)

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.