Help in selecting last n records
Hi All
I have the following tables in my database
CREATE TABLE MACHINE_M (
ID VARCHAR(20) NOT NULL,
NAME VARCHAR(20)
)
CREATE TABLE STG_READING (
ID VARCHAR(20) NOT NULL,
MACHINE_ID VARCHAR(20),
DATE_ID NUMBER,
TIME_ID NUMBER,
READING NUMBER
)
CREATE TABLE READING_DWR (
ID VARCHAR(20) NOT NULL,
MACHINE_ID VARCHAR(20),
DATE_ID NUMBER,
TIME_ID NUMBER,
READING NUMBER
)
CREATE TABLE DATE_DIMENSION (
DATE_ID NUMBER NOT NULL,
DATE_VALUE DATE NOT NULL,
DAY VARCHAR(10),
DAY_OF_WEEK INTEGER,
DAY_OF_MONTH INTEGER,
DAY_OF_YEAR INTEGER,
PREVIOUS_DAY DATE,
NEXT_DAY DATE,
WEEK_OF_YEAR INTEGER,
MONTH VARCHAR(10),
MONTH_OF_YEAR INTEGER,
QUARTER_OF_YEAR INTEGER,
YEAR INTEGER
)
CREATE TABLE TIME_DIMENSION (
TIME_ID NUMBER NOT NULL,
HOUR VARCHAR(3),
MINUTE VARCHAR(3),
SECOND VARCHAR(3),
INTERVAL NUMBER
)
Referential Constrains:-
STG_READING(DATE_ID)>>>>>DATE_DIMENSION(DATE_ID)
STG_READING(TIME_ID)>>>>>TIME_DIMENSION(TIME_ID)
MACHINE_M(ID)>>>>>STG_READING(MACHINE_ID)
READING(DATE_ID)>>>>>DATE_DIMENSION(DATE_ID)
READING(TIME_ID)>>>>>TIME_DIMENSION(TIME_ID)
MACHINE_M(ID)>>>>>READING(MACHINE_ID)
i will be getting the reading from the machine every 1min which i will be inserting into STG_READING table. the READING column must always be progressive.
so i have to validate the reading column from the staging with the last n records in the READING_DWR table.
selecting the last n records for a particular machine from READING_DWR table every time is causing performance bottleneck.
Can some one suggest me a way to improve the performance