From 7a6779378ae61475f2413eca5e099f20c3a89db3 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Fri, 4 Dec 2020 14:30:43 +0100 Subject: [PATCH] TT#104251 cdr paging queries: force index Change-Id: I373d638313385e43d08b00ca0b0f3146fb6ec048 (cherry picked from commit d78ed162cdd47f5cf94318abc385a03efd6a57d9) --- lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm b/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm index 56391e3..2b4f31c 100644 --- a/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm +++ b/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm @@ -473,8 +473,11 @@ sub _get_export_stmt_part { if ('b' eq lc($static_context->{part})) { push @conds, $table . '.id > ' . $static_context->{last_processed_cdr_id}; } elsif ('a' eq lc($static_context->{part})) { - push @intjoins, 'LEFT JOIN ' . $db->tableidentifier(NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::gettablename()) . ' AS __cesd ON __cesd.cdr_id = ' . $table . '.id AND __cesd.status_id = ' . $static_context->{export_status_id}; - push @conds, $table . '.id <= ' . $static_context->{last_processed_cdr_id}; + $stmt = "FROM " . $db->tableidentifier(NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::gettablename()) + . ' AS __cesd FORCE INDEX (PRIMARY)'; + unshift @intjoins, 'LEFT JOIN ' . $table . ' FORCE INDEX (PRIMARY) ON ' . $table . '.id = __cesd.cdr_id'; + push @conds, '__cesd.cdr_id <= ' . $static_context->{last_processed_cdr_id}; + push @conds, '__cesd.status_id = ' . $static_context->{export_status_id}; push @conds, '__cesd.export_status = "' . $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::UNEXPORTED . '"'; } }