0% found this document useful (0 votes)
15 views3 pages

SQL Optimaztion

The document provides a comprehensive guide on indexing in databases, detailing its structure, performance improvements, and various techniques for effective indexing. It covers topics such as the anatomy of indexes, the impact of the WHERE clause, join operations, and the effects of indexing on data manipulation language (DML) statements. Additionally, it discusses optimization strategies for SQL queries, including the use of concatenated indexes and time extraction methods.

Uploaded by

Abdul Rachmat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views3 pages

SQL Optimaztion

The document provides a comprehensive guide on indexing in databases, detailing its structure, performance improvements, and various techniques for effective indexing. It covers topics such as the anatomy of indexes, the impact of the WHERE clause, join operations, and the effects of indexing on data manipulation language (DML) statements. Additionally, it discusses optimization strategies for SQL queries, including the use of concatenated indexes and time extraction methods.

Uploaded by

Abdul Rachmat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

1. Preface — Why is indexing a development task?

1. Anatomy of an Index — What does an index look like?


1. The Leaf Nodes — A doubly linked list
2. The B-Tree — It’s a balanced tree
3. Slow Indexes, Part I — Two ingredients make the index
slow
2. The Where Clause — Indexing to improve search performance
1. The Equals Operator — Exact key lookup
1. Primary Keys — Verifying index usage
2. Concatenated Keys — Multi-column indexes
3. Slow Indexes, Part II — The first ingredient,
revisited
2. Functions — Using functions in the where clause
1. Case-Insensitive Search — UPPER and LOWER
2. User-Defined Functions — Limitations of function-
based indexes
3. Over-Indexing — Avoid redundancy
3. Bind Variables — For security and performance
4. Searching for Ranges — Beyond equality
1. Greater, Less and BETWEEN — The column order
revisited
2. Indexing SQL LIKE Filters — LIKE is not for full-text
search
3. Index Combine — Why not using one index for
every column?
5. Partial Indexes — Indexing selected rows
6. NULL in the Oracle Database — An important curiosity
1. NULL in Indexes — Every index is a partial index
2. NOT NULL Constraints — affect index usage
3. Emulating Partial Indexes — using function-based
indexing
7. Obfuscated Conditions — Common anti-patterns
1. Dates — Pay special attention to DATE types
2. Numeric Strings — Don’t mix types
3. Combining Columns — use redundant where clauses
4. Smart Logic — The smartest way to make SQL slow
5. Math — Databases don’t solve equations
3. Testing and Scalability — About hardware
1. Data Volume — Sloppy indexing bites back
2. System Load — Production load affects response time
3. Response Time and Throughput — Horizontal scalability
4. The Join Operation — Not slow, if done right
1. Nested Loops — About the N+1 selects problem in ORM
2. Hash Join — Requires an entirely different indexing
approach
3. Sort-Merge Join ‌— Like a zipper on two sorted sets
5. Clustering Data — To reduce IO
1. Index Filter Predicates Intentionally Used — to tune LIKE
2. Index-Only Scan — Avoiding table access
3. Index-Organized Table — Clustered indexes without
tables
6. Sorting and Grouping — Pipelined order by: the third power
1. Indexed Order By — where clause interactions
2. ASC/DESC and NULL FIRST/LAST — changing index order
3. Indexed Group By — Pipelining group by
7. Partial Results — Paging efficiently
1. Selecting Top-N Rows — if you need the first few rows
only
2. Fetching The Next Page — The offset and seek methods
compared
3. Window-Functions — Pagination using analytic queries
8. Insert, Delete and Update — Indexing impacts on DML
statements
1. Insert — cannot take direct benefit from indexes
2. Delete — uses indexes for the where clause
3. Update — does not affect all indexes of the table
SQL OPTIMAZTION

1. Time Extract
SELECT COUNT(*)
FROM tbl
WHERE EXTRACT(YEAR FROM date_column) = 2017

Meaning extract field


Year YEAR
Month MONTH
Day of month DAY
24 hour HOUR
Minute MINUTE
Seconds (including fractions) SECOND
Time zone hour TIMEZONE_HOUR
Time zone minute TIMEZONE_MINUTE
**WHERE some_date >= DATE'2016-01-01'
AND some_date < DATE'2017-01-01'

2. Concatenated Indexes
Menggabungkan 2 field menjadi sebuah index
CREATE UNIQUE INDEX employees_pk
ON employees (employee_id, subsidiary_id)

3. ….

You might also like