Advance Concept in Data Bases Unit-2 by Arun Pratap Singh
The document discusses query processing and optimization in databases. It describes the basic steps in query processing as parsing and translation, optimization, and evaluation. Query optimization aims to determine the most efficient execution plan by considering costs and selecting the lowest cost plan. The document outlines the stages of query optimization as parsing, decomposition, normalization, semantic analysis, simplification, reconstruction and cost-based plan selection.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100%(1)100% found this document useful (1 vote)
820 views51 pages
Advance Concept in Data Bases Unit-2 by Arun Pratap Singh
The document discusses query processing and optimization in databases. It describes the basic steps in query processing as parsing and translation, optimization, and evaluation. Query optimization aims to determine the most efficient execution plan by considering costs and selecting the lowest cost plan. The document outlines the stages of query optimization as parsing, decomposition, normalization, semantic analysis, simplification, reconstruction and cost-based plan selection.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51
PREPARED BY ARUN PRATAP SINGH MTECH 2nd SEMESTER
PREPARED BY ARUN PRATAP SINGH 1
1
QUERY PROCESSING AND OPTIMIZATION INTRODUCTION : A database management system manages a large volume of data which can be retrieved by specifying a number of queries expressed in a high-level query language such as SQL. Whenever a query is submitted to the database system, a number of activities are performed to process that query. Query processing includes translation of high-level queries into low- level expressions that can be used at the physical level of the file system, query optimization, and actual execution of the query to get the result. Query optimization is a process in which multiple query-execution plans for satisfying a query are examined and a most efficient query plan is identified for execution.
Basic Steps in Query Processing :- 1. Parsing and translation 2. Optimization 3. Evaluation
Parsing and translation :
Check syntax and verify relations. Translate the query into an equivalent relational algebra expression.
Optimization :
Generate an optimal evaluation plan (with lowest cost) for the query plan.
Evaluation :
The query-execution engine takes an (optimal) evaluation plan, executes that plan, and returns the answers to the query.
UNIT : II
PREPARED BY ARUN PRATAP SINGH 2
2
PREPARED BY ARUN PRATAP SINGH 3
3
PREPARED BY ARUN PRATAP SINGH 4
4
QUERY OPTIMIZATION :
Query optimization is a function of many relational database management systems. The query optimizer attempts to determine the most efficient way to execute a given query by considering the possible query plans. Generally, the query optimizer cannot be accessed directly by users: once queries are submitted to database server, and parsed by the parser, they are then passed to the query optimizer where optimization occurs. However, some database engines allow guiding the query optimizer with hints.
PREPARED BY ARUN PRATAP SINGH 5
5 What is Query Optimization? Suppose you were given a chance to visit 15 pre-selected different cities in Europe. The only constraint would be Time -> Would you have a plan to visit the cities in any order? Plan: -> Place the 15 cities in different groups based on their proximity () to each other. -> Start with one group and move on to the next group. Important point made over here is that you would have visited the cities in a more organized manner, and the Time constraint mentioned earlier would have been dealt with efficiently.
Query Optimization works in a similar way: There can be many different ways to get an answer from a given query. The result would be same in all scenarios.
DBMS strive to process the query in the most efficient way (in terms of Time) to produce the answer.
Cost = Time needed to get all answers
Starting with System-R, most of the commercial DBMSs use cost-based optimizers. The estimation should be accurate and easy. Another important point is the need for being logically consistent because the least cost plan will always be consistently low.
PREPARED BY ARUN PRATAP SINGH 6
6
PREPARED BY ARUN PRATAP SINGH 7
7
Steps in a Cost-based query optimization :
1. Parsing 2. Transformation 3. Implementation 4. Plan selection based on cost estimates
Query Flow :
PREPARED BY ARUN PRATAP SINGH 8
8 Query Parser Verify validity of the SQL statement. Translate query into an internal structure using relational calculus. Query Optimizer Find the best expression from various different algebraic expressions. Criteria used is Cheapness Code Generator/Interpreter Make calls for the Query processor as a result of the work done by the optimizer. Query Processor Execute the calls obtained from the code generator.
Cost-based query Optimization: Algebraic Expressions If we had the following query- SELECT p.pname, d.dname FROM Patients p, Doctors d WHERE p.doctor = d.dname AND d.dgender = M
PREPARED BY ARUN PRATAP SINGH 9
9
PREPARED BY ARUN PRATAP SINGH 10
10
SYNTAX ANALYZER :
The syntax analyser takes the query from the users, parses it into tokens and analyses the tokens and their order to make sure they comply with the rules of the language grammar. If an error is found in the query submitted by the user, it is rejected and an error code together with an explanation of why the query was rejected is returned to the user.
The syntax analyzer takes the query from the users, parses it into tokens andanalyses the tokens and their order to make sure they follow the rules of the language grammar. Is an error is found in the query submitted by the user, it is rejected and an error code together with an explanation of why the query was rejected is return to the user. A simple form of the language grammar that could use to implement SQL statement is given bellow : QUERY = SELECT + FROM + WHERE SELECT = SELECT + <CLOUMN LIST> FROM = FROM + <TABLE LIST> WHERE = WHERE + VALUE1 OP VALUE2 VALUE1 = VALUE / COLUMN NAME VALUE2 = VALUE / COLUMN NAME OP = >, <, >=, <=, =, <>
PREPARED BY ARUN PRATAP SINGH 11
11 QUERY DECOMPOSITION :
The aims of query decomposition (1) To transform a high-level query into a relational algebra query. (2) To check that the query is syntactically and semantically correct.
The typical stages of query decomposition are analysis, normalization, semantic analysis, simplification, and query restructuring.
ANALYSIS :
PREPARED BY ARUN PRATAP SINGH 12
12
PREPARED BY ARUN PRATAP SINGH 13
13
PREPARED BY ARUN PRATAP SINGH 14
14
NORMALIZATION :
PREPARED BY ARUN PRATAP SINGH 15
15
PREPARED BY ARUN PRATAP SINGH 16
16
PREPARED BY ARUN PRATAP SINGH 17
17 SEMANTIC ANALYSIS :
PREPARED BY ARUN PRATAP SINGH 18
18
PREPARED BY ARUN PRATAP SINGH 19
19
QUERY SIMPLIFIER :
PREPARED BY ARUN PRATAP SINGH 20
20
PREPARED BY ARUN PRATAP SINGH 21
21
PREPARED BY ARUN PRATAP SINGH 22
22
QUERY RECONSTRUCTION :
PREPARED BY ARUN PRATAP SINGH 23
23
PREPARED BY ARUN PRATAP SINGH 24
24
PREPARED BY ARUN PRATAP SINGH 25
25
PREPARED BY ARUN PRATAP SINGH 26
26 QUERY OPTIMIZATION :
PREPARED BY ARUN PRATAP SINGH 27
27
PREPARED BY ARUN PRATAP SINGH 28
28
PREPARED BY ARUN PRATAP SINGH 29
29
PREPARED BY ARUN PRATAP SINGH 30
30
PREPARED BY ARUN PRATAP SINGH 31
31
PREPARED BY ARUN PRATAP SINGH 32
32
PREPARED BY ARUN PRATAP SINGH 33
33
PREPARED BY ARUN PRATAP SINGH 34
34
PREPARED BY ARUN PRATAP SINGH 35
35
PREPARED BY ARUN PRATAP SINGH 36
36
PREPARED BY ARUN PRATAP SINGH 37
37
PREPARED BY ARUN PRATAP SINGH 38
38
The main aim of query optimization is to choose the most efficient way of implementing the relational algebra operations at the lowest possible cost. Therefore, the query optimizer should not depend solely on heuristics rules, but, it should also estimate the cost of executing the different strategies and find out the strategy with the minimum cost estimate. The method of optimising the query by choosing a strategy those results in minimum cost is called cost- based query optimization. The cost-based query optimization uses formulae that estimate the
PREPARED BY ARUN PRATAP SINGH 39
39 costs for a number of options and selects the one with lowest cost and most efficient to execute. The cost functions used in query optimization are estimates and not exact cost functions. So, the optimization may select a query execution strategy that is not the optimal one. The cost of an operation is heavily dependent on its selectivity, that is, the proportion of the input relation(s) that forms the output. In general, different algorithms are suitable for low- and high-selectivity queries. In order for a query optimiser to choose a suitable algorithm for an operation an estimate of the cost of executing that algorithm must be provided. The cost of an algorithm is dependent on the cardinality of its input. To estimate the cost of different query execution strategies, the query tree is viewed as containing a series of basic operations which are linked in order to perform the query. Each basic operation has an associated cost function whose argument(s) are the cardinality of its input(s). It is also important to know the expected cardinality of an operations output, since this forms the input to the next operation in the tree. The expected cardinalities are derived from statistical estimates of a querys selectivity, that is, the portion of the tuple satisfying the query. The main aim of query optimization is to choose the most efficient way of implementing the relational algebra operations at the lowest possible cost. Therefore the query optimizer should not depend solely on heuristic rules, but, it should also estimate the cost of executing the different strategies and find out the strategy with the minimum cost estimate. The method of optimizing the query by choosing a strategy those result in minimum cost is called cost-based query optimization. The cost-based query optimization uses the formula that estimate the cost for a number of options and selects the one with lowest cost and the most efficient to execute. The cost functions used in query optimization are estimates and not exact cost functions. The cost of an operation is heavily dependent on its selectivity, that is, the proportion of select operation(s) that forms the output. In general the different algorithms are suitable for low or high selectivity queries. In order for query optimizer to choose suitable algorithm for an operation an estimate of the cost of executing that algorithm must be provided. The cost of an algorithm is depend of a cardinality of its input. To estimate the cost of different query execution strategies, the query tree is viewed as containing a series of basic operations which are linked in order to perform the query. It is also important to know the expected cardinality of an operations output because this forms the input to the next operation. Cost Components of Query Execution :- The success of estimating the size and cost of intermediate relational algebra operations depends on the amount the accuracy of statistical data information stored with DBMS.
PREPARED BY ARUN PRATAP SINGH 40
40
PREPARED BY ARUN PRATAP SINGH 41
41
STRUCTURE OF QUERY EVALUATION PLAN :
PREPARED BY ARUN PRATAP SINGH 42
42
PREPARED BY ARUN PRATAP SINGH 43
43
PIPELINING AND MATERIALIZATION :
PREPARED BY ARUN PRATAP SINGH 44
44
PREPARED BY ARUN PRATAP SINGH 45
45
PREPARED BY ARUN PRATAP SINGH 46
46
PREPARED BY ARUN PRATAP SINGH 47
47
PREPARED BY ARUN PRATAP SINGH 48
48
PREPARED BY ARUN PRATAP SINGH 49
49
SOME QUESTIONS Q . 1 Explain inter-query parallelism ? Ans : Inter-query parallelism is a form of parallelism in the evaluation of database queries, in which several different queries execute concurrently on multiple processors to improve the overall throughput of the system. When multiple non-conflicting requests are submitted to a database management system, then the system can execute them in parallel to improve the overall throughput. This form of parallelism is called inter-query parallelism. Inter-query parallelism is a consequence of the concurrency of user requests. It is orthogonal to intra-query parallelism, in which several processors cooperate for the faster execution of a single query. Inter-query parallelism results from the ability to execute multiple queries at the same time while intra- query parallelism is achieved by breaking up a single query into a number of subqueries each of which is executed at a different site, accessing a different part of the distributed database. If the user access to the distributed database consisted only of querying (i.e., read-only access), then provision of inter-query and intra-query parallelism would imply that as much of the database as possible should be replicated. However, since most database accesses are not read-only, the mixing of read and update operations requires the implementation of elaborate concurrency control and commit protocols. o Queries/transactions execute in parallel with one another. o Increases transaction throughput; used primarily to scale up a transaction processing system to support a larger number of transactions per second. o Easiest form of parallelism to support, particularly in a shared-memory parallel database, because even sequential database systems support concurrent processing.
PREPARED BY ARUN PRATAP SINGH 50
50 o More complicated to implement on shared-disk or shared-nothing architectures o Locking and logging must be coordinated by passing messages between processors. o Data in a local buffer may have been updated at another processor. o Cache-coherency has to be maintained reads and writes of data in buffer must find latest version of data. Cache Coherency Protocol o Example of a cache coherency protocol for shared disk systems: o Before reading/writing to a page, the page must be locked in shared/exclusive mode. o On locking a page, the page must be read from disk o Before unlocking a page, the page must be written to disk if it was modified. o More complex protocols with fewer disk reads/writes exist. o Cache coherency protocols for shared-nothing systems are similar. Each database page is assigned a home processor. Requests to fetch the page or write it to disk are sent to the home processor.