You Asked
Hi Tom!
Last day I work with an 8 node Exadata Data Warehouse to tune performance for the slow SQL,and I found that the table is not gather statistics and the execution plan is not the best, it executes with the TABLE ACCESS STORAGE FULL,the table has about 50 milion rows and there are no any indexes were created on the table.
But I heard that the Data Warehouse no need to create any indexes on table,and statistics is not gathered.I'm so confused and I don't know how to tune the SQL if they don't gather the statistics or create index.I am very helpless and doubt, what I should do to tune the SQL in the Exadata Data Warehouse? And why they no need to gather statistics or create index?
Hope for your responseļ¼
Thanks a lot!
Best wishes!
and Connor said...
"But I heard that the Data Warehouse no need to create any indexes"...
- that is false
"and statistics is not gathered"
- that is also false
This is one of those things that is common in the IT industry. Someone says
"With an Exadata, there is a good chance that many of your indexes are redundant for DSS style queries"
and that is true. The problem is, someone takes that sentence and turns it into:
"Drop ALL of your indexes on Exadata"
which is definitely NOT true.
But onto the issue at hand - how to tune SQL on Exadata.
Just like *any* platform, your aim is to have your SQL take advantage of what works best on that platform. So for exadata, that means taking advantage of compression, predicate offloading, storage indexes, or probably the more common way of looking at it, is making sure your SQL's are not doing things that stop these optimizations from taking place, eg, single row lookup, expressions around columns, case-insensitive queries, buffered reads etc.
Similarly, you also want to tackle the *creation* of data, namely, how its loaded, because that too can have an impact on how efficiently it can be accessed by queries later.
Rating
(2 ratings)
Is this answer out of date? If it is, please let us know via a Comment