• Home
  • SQL Server
    • Articles
    • T-SQL Puzzles
    • Output Puzzles
    • Interview Questions
    • Performance Tuning
    • SQL SERVER On Linux
    • Resources
  • SSRS
    • SSRS Articles
    • Interview Questions
  • SSAS
    • SSAS Articles
    • DAX
  • SQL Puzzles
  • Interview Questions
    • SQL Interview Questions
    • Data Interview Questions
  • Python Interview Puzzles
  • New Features(SQL SERVER)
    • SQL SERVER 2017
    • SQL SERVER 2016
    • SQL SERVER On Linux
  • Social
    • Expert Exchange
      • Top Expert in SQL
      • Yearly Award
      • Certifications
      • Achievement List
      • Top Expert of the Week
    • HackerRank (SQL)
    • StackOverflow
    • About Me
      • Contact Me
      • Blog Rules

Improving my SQL BI Skills

Improving my SQL BI Skills

Daily Archives: August 16, 2010

Triggers – Basic info

16 Monday Aug 2010

Posted by Pawan Kumar Khowal in SQL Concepts

≈ Leave a comment


Triggers – Basic info

1.A trigger is a special kind of procedure that responds to specific events.

2.A Trigger is a piece of code that you attach to a particular
table.Unlike stored procedures where we have to explicitly invoke the
code , the code is trigger is automatically run whenever the events you
attached the trigger to occur in the table.

3.Indeed you can’t explicitly invoke triggers.The only way to do
this is by performing the required action in the table that they are
assigned.

4.Types of triggers. FOR | AFTER , INSTEAD OF.

5.We cannot have triggers on the tables having columns with text , ntext , image as datatype.

6.Whenever a trigger is fired internally SQL SERVER creates two
table;Inserted and Deleted.These tables are called as Magic
Tables.These magic tables are stored in temporary database.

7.The scope of the tables is only with in the trigger.

8.We cannot access these tables i.e magic tables in the trigger.Only triggers can access them.

9.Both the tables are of same structure.

10.We can use for triggers

a.Referential integrity
b.Functionality similar to a check constraint.
c.Complex view Insertion.

11.What we can attach to triggers to.
a.Insert triggers.
b.Update triggers.
c.Delete triggers.
d.Combination of above three.

I will add one more detailed article on the same topic.

Pawan Kumar
Pawankkmr@hotmail.com

Share this

  • LinkedIn
  • Facebook
  • Twitter
  • WhatsApp
  • Email

USER DEFINED FUNCTIONS IN SQL SERVER

16 Monday Aug 2010

Posted by Pawan Kumar Khowal in SQL Concepts

≈ Leave a comment


USER DEFINED FUNCTIONS IN SQL SERVER 2005

1.Functions are SQL SERVER objects which are used to write logic for funtionalities other than business logic.

2.Functions by default does not return a value.

3.Functions can’t be used for insert , update or delete.

4.Functions do not have concept of INPUT and OUTPUT Parameters.

5.There are three types of functions available in the user defined functions.

a.Scalar valued functions : They will return single value.

b.Inline table valued functions : They always returns a resultset
but we cannot define a new structure of resultset.It cannot return a
single value.

c.Multivalued table functions: They returns a resultant table.Here we can define a new structure for the table.

6.Each function is used for specific purpose.

7.We can do all the things with stored procedures as well as functions but what we write is purely depends on your requirements.

Examples of scalar valued functions.

Create function
(

@param1 ,@param2 ….param list

)

returns

AS

BEGIN

SQL Statements.
returns variable name –>Datatype of this variable should be same as what we are returning.

END

Eg.
Create function func_avg
( @cat_id int )
returns money
AS
BEGIN

Declare @avg as money
SELECT @avg = agv(UnitPrice) from products where categoryId = @catId
return @avg

END

How to execute : select * from dbo.func_avg(1)

Inline table Value functions

Create function

(

@param1 , @param2 …..param list

)
RETURNS TABLE
AS
RETURN
SQL STATEMENT

Create function func_dtls
(
@catId INT
)
Returns table
as
Return

SELECT prodName , CategoryId , UnitPrice from Products
Where categoryId = @catId

Get result….

Select * from func_dtls(23)

Table valued functions

Create function
(

@param1 , @param2 …..param list

)
Returns @tableName TABLE ()
AS
BEGIN
SQL STATEMENT
RETURN
END

eg.
Create function func_temp
(

)
returns @newTable TABLE
(

cust_id int indentity ( 1,1 ),
cname varchar(60),
countryName varchar(30)

)

AS
BEGIN

INSERT @newTable
SELECT CompanyName , Country from customers
Return

END

Pawan Kumar
Pawankkmr@hotmail.com

Share this

  • LinkedIn
  • Facebook
  • Twitter
  • WhatsApp
  • Email

FORMATS OF EXECUTION PLAN AND USAGE PERMISSIONS

16 Monday Aug 2010

Posted by Pawan Kumar Khowal in SQL Concepts

≈ Leave a comment


FORMATS OF EXECUTION PLAN & USAGE PERMISSION

2.SQL SERVER offers three formats for execution plans. They are

a.Graphical Plans

b.Text Plans

c. XML Plans

2.Graphical Plans are easy to read but the detailed data for the
plan is masked. Both Estimated and Actual execution plans can be viewed
in graphical format.

3.Text plans provides three text plan formats:

a.SHOWPLAN_ALL : a reasonably complete set of data showing the
Estimated execution plan for the query.It will not give u actual
execution plan.

b.SHOWPLAN_TEXT : provides a very limited set of data for use with
tools like osql.exe . It will only give you estimated execution plan.

c.STATISTICS PROFILE: similar to SHOWPLAN_ALL except it represents the data for the Actual execution plan

4.XML plans present the most complete set of data available on a
plan, all on display in the structured XML format. There are two
varieties of XML plan:

a.SHOWPLAN_XML : The plan generated by the optimizer prior to
execution.SQL Server returns detailed information about how the
statements are going to be executed in the form of a well-defined XML
document.

b.STATISTICS_XML : The XML format of the Actual execution plan.

Permissions Required to View Execution Plans : GRANT SHOWPLAN TO [user]

Examples are given below.

SET SHOWPLAN_ALL ;

SET STATISTICS PROFILE ON

SET SHOWPLAN_XML ON

Pawan Kumar
Pawankkmr@hotmail.com

Share this

  • LinkedIn
  • Facebook
  • Twitter
  • WhatsApp
  • Email

EXECUTION PLANS AND THE MEMORY

16 Monday Aug 2010

Posted by Pawan Kumar Khowal in SQL Concepts

≈ Leave a comment


EXECUTION PLANS AND THE MEMORY

Why stored procedures takes the same amount of time after some hours as it takes at
the first go.

It should take less time than the time taken by SQL SERVER to
execute it for the first time. The answer is this is depends on the
age. This has been taken care of LAZY WRITER.

1.It is too costly for the SQL SERVER to generate execution plan
every time it executes a query. Hence SQL SERVER will keeps the same in
the memory and reuse the same when ever possible.They are stored in
part of the SQL SERVER memory called plan cache.

2.When a query is given to the SQL SERVER , an estimated execution
plan is created by the query optimizer.Then the optimizer compares both
the plan estimated as well as the plan from the plan cache.If both are
same then the optimizer will reuse the existing plan because it is
already been used by the query engine.This will reduce overheads of
creating actual execution plans.

3.Execution plans are not saved in memory forever.

4.SQL SERVER removes the execution plan if one of the following criteria is met.
a) If the SQL SERVER wants to use the memory which is used by our execution plan.
b) The age of our plan is 0.Age formula that multiplies the estimated
cost of the plan by the number of times it has been used .The
lazywriter process, an internal process that works to free all types of
cache (including plan cache), periodically scans the objects in the
cache and decreases this value by one each time.
c) If the plan is not used by the existing connections.

5.To clear the procedure cache the query used is : DBCC FREEPROCCACHE

6.Following actions can lead to recompilation of an execution plan:
a)If you change the index which is used by the query.
b)Chaging the structure of the table.
c)Dropping the index used by the query.
e)Calling the function sp_recompile explicitly or it has been written inside the stored procedure.
f)Due to large number of deletes or inserts.

7.One can easily get the information about execution plans on our
system.The tables used for the same are sys.dm_exec_cached_plans cp ,
sys.dm_exec_sql_text , sys.dm_exec_query_plan

Pawan Kumar
Pawankkmr@hotmail.com

20.000000 77.000000

Share this

  • LinkedIn
  • Facebook
  • Twitter
  • WhatsApp
  • Email

Estimated Execution Plan VS Actual Execution Plan

16 Monday Aug 2010

Posted by Pawan Kumar Khowal in SQL Concepts

≈ Leave a comment

Tags

Actual execution plan, estimated execution plan, Execution plan, Interview Questions on SQL, Queries for SQL Interview, SQL, SQL FAQs, SQL Interview question, SQL Questions, SQL SERVER2005/2008, SQLSERVER, T SQL Puzzles, TSQL Queries


Estimated Execution Plan VS Actual Execution Plan

I my previous post i have explained some basic details of execution
plans and its types.Well in this post we are drilling deep into the
topic of execution plans.

1.Execution plans can help us in troubleshooting queries which are not performing well as per our requirement.

2.Two types of execution plans are there. They are

a)Estimated Execution Plan.
b)Actual Execution Plan.

3.Estimated Execution Plan is the plan that represents the output
from the optimizer.The operators, or steps, within the plan will be
labeled as logical, because they’re representative of the optimizer’s
view of the plan.

4.Actual execution plan is the plan that shows what actually happened when the query executed.

5.How to get these plans : Go to MS SQL SERVER management studio.
-> Click Query menu -> Select Display Estimated Execution Plan,
-> Include Actual Execution Plan.

6.Short cuts for the same are CTRL + L for Display Estimated Execution Plan and CTRL + M for Include Actual Execution Plan.

7.You must be wondering why can’t we have only one plan : Well please read below to clear your thoughts.
The difference between the plans is differences between the statistics
and the actual data. This generally occurs over time as data is added
and deleted.
This causes the key values that define the index to change, or their
distribution (how many of what type) to change. The automatic update of
statistics that occurs, assuming it’s turned on, only samples a subset
of the data in order to reduce the cost of the operation. This means
that, over time, the statistics become a less-and-less accurate
reflection of the actual data. Not only can this cause differences
between the plans, but you can get bad execution plans because the
statistical data is not up to date.

8.If you are using actual execution plan and you have set statistics
profile on then you dont get the results till the query has
completed.This will create problems when troubleshooting performance
problems on long running queries.
If the query you are trying to analyze doesn’t return the result set
for say x minutes ,then you have to wait for x minutes to see the
actual execution plan.

9.If you are using estimated execution plan , it gives us the plan
what the SQL Engine is going to do ( How it will execute the query )
when it executes the query and allows the developer to see if what they
have written is proper as per their needs.

10.We can use estimated execution plan in case of long running queries.

11.One should always use actual execution plans as they are accurate.Well this is my personal opinion.

Bye friends for now.Cheers,

Pawan Kumar

Pawankkmr@hotmail.com

Share this

  • LinkedIn
  • Facebook
  • Twitter
  • WhatsApp
  • Email
← Older posts

Blog Stats

  • 1,084,788 hits

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 1,131 other subscribers

Pawan Khowal

502 SQL Puzzles with answers

Achievement - 500 PuzzlesJuly 18, 2018
The big day is here. Finally presented 500+ puzzles for SQL community.

200 SQL Server Puzzle with Answers

The Big DayAugust 19, 2016
The big day is here. Completed 200 SQL Puzzles today

Archives

August 2010
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Jul   Sep »

Top Articles

  • pawankkmr.wordpress.com/2…
  • pawankkmr.wordpress.com/2…
  • pawankkmr.wordpress.com/2…
  • pawankkmr.wordpress.com/2…
  • pawankkmr.wordpress.com/2…

Archives

  • October 2020 (29)
  • September 2018 (2)
  • August 2018 (6)
  • July 2018 (25)
  • June 2018 (22)
  • May 2018 (24)
  • April 2018 (33)
  • March 2018 (35)
  • February 2018 (53)
  • January 2018 (48)
  • December 2017 (32)
  • November 2017 (2)
  • October 2017 (20)
  • August 2017 (8)
  • June 2017 (2)
  • March 2017 (1)
  • February 2017 (18)
  • January 2017 (2)
  • December 2016 (5)
  • November 2016 (23)
  • October 2016 (2)
  • September 2016 (14)
  • August 2016 (6)
  • July 2016 (22)
  • June 2016 (27)
  • May 2016 (15)
  • April 2016 (7)
  • March 2016 (5)
  • February 2016 (7)
  • December 2015 (4)
  • October 2015 (23)
  • September 2015 (31)
  • August 2015 (14)
  • July 2015 (16)
  • June 2015 (29)
  • May 2015 (25)
  • April 2015 (44)
  • March 2015 (47)
  • November 2012 (1)
  • July 2012 (8)
  • September 2010 (26)
  • August 2010 (125)
  • July 2010 (2)

Article Categories

  • Analysis Services (6)
    • DAX (6)
  • Data (2)
    • Data warehousing (2)
  • Integration Services (2)
  • Magazines (3)
  • Python (29)
  • Reporting Services (4)
  • SQL SERVER (820)
    • Download SQL Interview Q's (212)
    • SQL Concepts (323)
    • SQL Performance Tuning (155)
    • SQL Puzzles (331)
    • SQL SERVER 2017 Linux (6)
    • SQL Server Interview Questions (308)
    • SQL SERVER Puzzles (332)
    • T SQL Puzzles (547)
    • Tricky SQL Queries (439)
  • UI (30)
    • ASP.NET (5)
    • C# (13)
    • CSS (9)
    • OOPS (3)
  • Uncategorized (5)

Recent Posts

  • Python | The Print and Divide Puzzle October 30, 2020
  • Python | Count consecutive 1’s from a list of 0’s and 1’s October 30, 2020
  • Python | How to convert a number into a list of its digits October 26, 2020
  • Python | Validate an IP Address-IPV6(Internet Protocol version 6) October 26, 2020
  • Python | Print the first non-recurring element in a list October 26, 2020
  • Python | Print the most recurring element in a list October 26, 2020
  • Python | Find the cumulative sum of elements in a list October 26, 2020
  • Python | Check a character is present in a string or not October 26, 2020
  • Python | Check whether a string is palindrome or not October 26, 2020
  • Python | Find the missing number in the array of Ints October 26, 2020
  • Python | How would you delete duplicates in a list October 26, 2020
  • Python | Check whether an array is Monotonic or not October 26, 2020
  • Python | Check whether a number is prime or not October 26, 2020
  • Python | Print list of prime numbers up to a number October 26, 2020
  • Python | Print elements from odd positions in a list October 26, 2020
  • Python | Print positions of a string present in another string October 26, 2020
  • Python | How to sort an array in ascending order October 26, 2020
  • Python | How to reverse an array October 26, 2020
  • Python | Find un-common words from two strings October 26, 2020
  • Python | How to convert a string to a list October 26, 2020
  • Python | Find unique words from a string October 26, 2020
  • Python | Calculate average word length from a string October 26, 2020
  • Python | Find common words from two strings October 26, 2020
  • Python | Find the number of times a substring present in a string October 26, 2020
  • Python | Find maximum value from a list October 26, 2020
  • Python | How to find GCF of two numbers October 26, 2020
  • Python | How to find LCM of two numbers October 26, 2020
  • Python | How to convert a list to a string October 26, 2020
  • Python | Replace NONE by its previous NON None value October 26, 2020
  • Microsoft SQL Server 2019 | Features added to SQL Server on Linux September 26, 2018

Create a website or blog at WordPress.com

  • Follow Following
    • Improving my SQL BI Skills
    • Join 231 other followers
    • Already have a WordPress.com account? Log in now.
    • Improving my SQL BI Skills
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar