Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Query Execution Section 15.1 Shweta Athalye CS257: Database Systems ID: 118 Section 1 Agenda    Query Processor Query compilation Physical Query Plan Operators  Scanning Tables       Table Scan Index scan Sorting while scanning tables Model of computation for physical operators Parameters for measuring cost Iterators Query Processor   The Query Processor is a group of components of a DBMS that turns user queries and data-modification commands into a sequence of database operations and executes those operations Query processor is responsible for supplying details regarding how the query is to be executed The major parts of the query processor Query compilation  Query compilation itself is a multi-step process consisting of :    Parsing: in which a parse tree representing query and its structure is constructed Query rewrite: in which the parse tree is converted to an initial query plan Physical plan generation: where the logical query plan is turned into a physical query plan by selecting algorithms. Outline of query compilation Physical Query Plan Operators     Physical query plans are built from operators Each of the operators implement one step of the plan. They are particular implementations for one of the operators of relational algebra. They can also be non relational algebra operators like “scan” which scans tables. Scanning Tables   One of the most basic things in a physical query plan. Necessary when we want to perform join or union of a relation with another relation. Two basic approaches to locating the tuples of a relation R  Table-scan  Relation R is stored in secondary memory with its tuples arranged in blocks  it is possible to get the blocks one by one  This operation is called Table Scan Two basic approaches to locating the tuples of a relation R  Index-scan  there is an index on any attribute of Relation R  Use this index to get all the tuples of R  This operation is called Index Scan Sorting While Scanning Tables  Why do we need sorting while scanning?  the query could include an ORDER BY clause requiring that a relation be sorted  Various algorithms for relational-algebra operations require one or both of their arguments to be sorted relation  physical-query-plan operator sort-scan takes a relation R and a specification of the attributes on which the sort is to be made, and produces R in that sorted order Model of Computation for Physical Operators    Choosing physical plan operators wisely is an essential for a good query processor. Cost for an operation is measured in number of disk i/o operations. If an operator requires the final answer to a query to be written back to the disk, the total cost will depend on the length of the answer and will include the final write back cost to the total cost of the query. Improvements in cost   Major improvements in cost of the physical operators can be achieved by avoiding or reducing the number of disk i/o operations This can be achieved by passing the answer of one operator to the other in the main memory itself without writing it to the disk. Parameters for Measuring Costs  Parameters that affect the performance of a query  Buffer space availability in the main memory at the time of execution of the query  Size of input and the size of the output generated  The size of memory block on the disk and the size in the main memory also affects the performance Iterators for Implementation of Physical Operators   Many physical operators can be implemented as an iterator It is a group of three functions that allows a consumer of the result of the physical operator to get the result one tuple at a time Iterator The three functions forming the iterator are: Open:  This function starts the process of getting tuples.  It initializes any data structures needed to perform the operation  Iterator GetNext  This function returns the next tuple in the result  Adjusts data structures as necessary to allow subsequent tuples to be obtained  If there are no more tuples to return, GetNext returns a special value NotFound Iterator Close  This function ends the iteration after all tuples  it calls Close on any arguments of the operator Thank You !!!