У меня есть ниже запрос, который возвращает 20000 записей из 100000000 после его выполнения ..вопрос производительности при заказе по п
SELECT *
FROM (SELECT a.*, ROWNUM rnum
FROM (select TIME,url,bytes
FROM (SELECT TO_CHAR ("5mintime",'YYYY-MM-DD HH24:MI:SS') AS TIME, url, BYTES
FROM available_web_details
WHERE "5mintime" >= TIMESTAMP '2012-02-10 00:00:00'
AND "5mintime" <= TIMESTAMP '2012-02-13 23:59:59'
AND username = 'asha1328874833'
AND CATEGORY = 'None240001'AND domain = '1328874833.vmware.com.'
AND (appid IN ('216.198.204.192id','216.198.207.0id','216.198.211.64id','216.198.211.128id','216.198.212.0id', '216.198.214.128id','216.198.214.192id','216.198.218.0id','216.198.220.192id','216.198.222.0id','216.198.223.32id','216.198.228.128id','216.198.229.128id',.....)))
ORDER BY TIME DESC) a
WHERE ROWNUM <= 10)
WHERE rnum > 0
Она занимает около 5 минут, чтобы выполнить его. Но когда я удаляю предложение order by, он выполняется через 4 секунды. Можете ли вы предложить, как я могу улучшить производительность?
схема available_web_details:
Name Null Type
------------ ---- --------------
5mintime TIMESTAMP(6)
USERNAME VARCHAR2(64)
HOST NUMBER
SRC_ZONE VARCHAR2(32)
DOMAIN VARCHAR2(512)
DST_ZONE VARCHAR2(32)
CONTENT VARCHAR2(64)
CATEGORY VARCHAR2(64)
URL VARCHAR2(1024)
HITS NUMBER
BYTES NUMBER
APPID VARCHAR2(32)
APPLICATION VARCHAR2(64)
CATEGORYTYPE VARCHAR2(64)
USERGROUP VARCHAR2(384)
У меня есть индексы на AppID, "5mintime" с локальным разделом. available_web_details
- это таблица разделов диапазона 1 месяц.
Вы задумывались над индексацией? –
@ roymustang86: Почему вы тратите свое время на свое бесполезное предложенное редактирование? –
Вы можете вынуть предложение 'rnum> 0'? Я почти уверен, что ничего не сделаю. – eaolson