У меня есть запрос простого подсчета на таблицу. Как показано ниже снимок экрана, в таблице нет первичного ключа, за исключением того, что один индекс находится в другом столбце.Стоимость простого подсчета запросов
Как я могу уменьшить стоимость этого запроса?
Нет разницы в стоимости даже после того, как я создал дополнительный индекс transactionno колонка. Таблица имеет 45 столбцов. Общий размер таблицы составляет 520 МБ.
CREATE TABLE TBL_COUNT
( ROW_NUMBER NUMBER(22,0) NOT NULL ENABLE,
DATECREATED TIMESTAMP (6),
TRANSACTIONDATE VARCHAR2(64),
TRANSACTIONTIME VARCHAR2(64),
TRANSACTIONNO VARCHAR2(100),
FIRST_NAME VARCHAR2(100),
LAST_NAME VARCHAR2(100),
REG_NO VARCHAR2(30),
EMAIL VARCHAR2(100),
PURCHASE_TYPE VARCHAR2(50),
RA_STATUS VARCHAR2(50),
BSCS_CODE VARCHAR2(20),
ORACLE_ITEM_CODE VARCHAR2(100),
ORACLE_PACKAGE_CODE VARCHAR2(100),
SKU_CODE VARCHAR2(50),
ITEM_DESCRIPTIONS VARCHAR2(100),
MSISDN VARCHAR2(150),
QUANTITY NUMBER(22,0),
UNIT_PRICE NUMBER(22,2),
SERVICE_TAX NUMBER(22,2),
TOTAL_PRICE NUMBER(22,2),
PAYMENT_METHOD VARCHAR2(50),
PAYMENT_CHANNEL VARCHAR2(50),
PAYMENT_MERCHANT_ID VARCHAR2(50),
REGISTER_REGION VARCHAR2(30),
AR_INTERFACESTATUS VARCHAR2(30),
PAYMENT_STATUS VARCHAR2(30),
PAYMENT_DATE VARCHAR2(64),
PAYMENT_TIME VARCHAR2(64),
ISSUING_BANK VARCHAR2(50),
CREDIT_CARD_NO VARCHAR2(50),
CREDIT_CARD_REASON_CODE VARCHAR2(100),
BANK_APPROVAL_CODE VARCHAR2(30),
BANK_REGISTER_REGION VARCHAR2(30),
BANK_REF_NO VARCHAR2(30),
PRIMARY_CONTACT_NO VARCHAR2(30),
ALTERNATE_CONTACT_NO VARCHAR2(30),
REFERENCE_CONTACT_NO VARCHAR2(30),
PRODUCT_UID VARCHAR2(30),
BANK_BIN VARCHAR2(50),
SETTLEMENT_DATE TIMESTAMP (3),
SKU_TYPE VARCHAR2(50),
EXTERNAL_ORDER_NUMBER VARCHAR2(64),
GST_TAX_AMOUNT NUMBER(22,2),
GST_TAX_CODE VARCHAR2(255)
) TABLESPACE TS ;
CREATE INDEX USER.TBL_COUNT_INDEX ON USER.TBL_COUNT (DATECREATED)
TABLESPACE TS_IDX ;
Почему вы делаете 'count (*)' на 1,5 миллиона строк таблицы достаточно часто, чтобы заботиться о производительности запроса? Вероятно, вряд ли будет более эффективный подход, чем сканирование таблицы, если вы не хотите определять первичный ключ (который вам все равно нужен). Вы могли бы распараллелить запрос, который заставит его вернуться быстрее, но это также приведет к тому, что он будет потреблять больше ресурсов на сервере. –
Обновлено quetion .. Пожалуйста, предложите на этом. –
Ваше изменение не отображает индекс на 'transactionNo'. Вы уверены, что создали этот индекс? –