[OUTER] JOIN table_or_view ON
Download
Report
Transcript [OUTER] JOIN table_or_view ON
Agenda for Today
Do Chapter 14
Final Project
Review for Final
Monitoring and optimization
Monitoring is important for peak
performance and activity
Optimize database performance.
Choices are
Use Windows monitoring tools like
System Monitor, Task Manager etc.
Use SQL Server monitoring tools like
SQL Profilers, Enterprise Manager etc.
Optimization
Goals
– Optimizing response time
– Optimizing throughput
– Maximizing availability
What to watch
–
–
–
–
Database, log, and file sizes
Data consistency issues
User activity
Server performance
Performance bottlenecks
Hardware bottlenecks
– Disk throughput
– Memory usage
– Processor usage
SQL Server bottlenecks
– Locking conflicts
– Resource contention
– tempdb activity
Key factors
SQL Server configuration and activity
Database design and implementation
End-user applications
Network throughput
Server hardware
Server operating system
Monitoring Tools
System Monitor
Task Manager
SQL Profiler
Query Analyzer
Enterprise Manager
DBCC commands
Using System Monitor
Gathering baseline values
Monitoring Windows NT/Windows
2000 counters
Isolating bottlenecks
Comparing server performance
Monitoring critical resources
System Monitor - continued
System Monitor includes
Performance Objects which
correspond to hardware resources Table 14-1 has more info
Counters that are data items with
specific information on a component
Instances are objects of the same type
like databases, hard disks etc
System Monitor
Performance counters
Memory Object Counters
Memory:Available Bytes
Memory:Pages/sec
Process:Page Faults/sec
Process:Working Set
SQLServer:Buffer Manager:Buffer
Cache Hit Ratio
SQLServer:Buffer Manager:Total
Pages
More info in Table 14-7
I/O Object Counters
PhysicalDisk:% Disk Time
PhysicalDisk:Avg. Disk Queue Length
PhysicalDisk:Current Disk Queue
Length
Memory:Page Faults/sec
SQLServer:Buffer Manager:Page
Reads/sec
SQLServer:Buffer Manager:Page
Writes/sec
Table 14-8
Processor Object Counter
Processor:% Processor Time
Processor:% Privileged Time
Processor:% User Time
System:% Total Processor Time
System:Context Switches/sec
System:Processor Queue Length
More in Table 14-9
Event Viewer
Event Viewer logs
– Security log
– System log
– Application log
SQL Profiler
Very Important Monitoring Tool
Primarily used to monitor stored
procedures, connections,SQL batches
Uses a number of filters to isolated the
problem
Profiler uses what called a trace to
capture SQL Server events
The trace can be paused and replayed
Events that can be monitored are
listed in Table 14-2
Trace General properties
Trace Events properties
Trace Data Columns
properties
Trace Filters properties
Standard templates (Profiler)
SQLProfilerSP_Counts
SQLProfilerStandard
SQLProfilerTSQL
SQLProfilerTSQL_Duration
SQLProfilerTSQL_Grouped
SQLProfilerTSQL_Replay
SQLProfilerTSQL_SPs
SQLProfilerTuning
Class Assignments
Page 532
Page 537
Take a break
Other SQL Server tools
System stored procedures
Table 14-4 has more info. Sp_who and
sp_lock are important ones
DBCC commands
These act as the “database
consistency checker” for SQL Server
Table 14-5 has more info on these
commands
DBCC commands
DBCC HELP
Help on syntax for DBCC commands
syntax:
DBCC HELP ('dbcc_statement')
DBCC CHECKALLOC
Checks the allocation and use of all
pages in the specified database
syntax:
DCC CHECKALLOC ('database'[, NOINDEX |
REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST |
REPAIR_REBUILD]
DBCC commands
DBCC CHECKDB syntax:
DBCC CHECKDB ('database'[, NOINDEX |
REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST |
REPAIR_REBUILD]
)
[WITH [ALL_ERRORMSGS | NO_INFOMSGS]
[, TABLOCK][, ESTIMATEONLY][, PHYSICAL_ONLY]
DBCC CHECKFILEGROUP syntax:
DBCC CHECKFILEGROUP ('filegroup'|filegroup_id
[, NOINDEX] )
[WITH [ALLERRORMSGS | NO_INFOMSGS]
[, TABLOCK][,ESTIMATEONLY]]
Current activity and Locking
Process ID - all current conn
Locks / Process ID - SPID’s
Locks / Object - info on Locks
Issuing locks
Locking ensures correct updates
SQL Server can issue locks for:
– A row identifier (RID), locking a single
row in a table
– A table, which locks all data rows and
indexes
– A database, which is used when
restoring a database
– A page, locking an 8-KB data or index
page
– An extent, locking a contiguous group of
pages during space allocation
Lock types
Basic locks
– Shared
– Exclusive
Special locks
–
–
–
–
–
–
Intent
Intent exclusive
Shared with intent exclusive
Update
Schema
Bulk update
Lock information – T-SQL
Use sp_who to retrieve information
about users and processes.
sp_who ['login_name']
Use sp_lock to view lock information.
sp_lock [spid]
Clearing deadlocks
1. The deadlocked transaction is rolled
back.
2. The application initiating the
transaction is notified of the rollback
with a message number 1205.
3. The transaction’s current request is
cancelled.
Joining tables
Joins are created through instructions
in the SELECT clause.
Joins connect two or more tables by
using a join operator.
Joins exist only for the duration of that
query.
Joins do not make changes to any
database tables.
Join columns
The order of columns displayed is the order
of columns chosen in the SELECT clause,
with * choosing all columns in the order of
the base table.
All tables being joined must be named in
the FROM clause.
Create aliases for table names to reduce
typing and make queries easier to read.
If NULLs are allowed in either connecting
column, matches are not made with other
NULLs.
Types of Joins
INNER JOIN
OUTER JOIN
– LEFT OUTER JOIN
– RIGHT OUTER JOIN
Inner joins
Only those rows that satisfy the join
condition are displayed in the result.
Inner join syntax:
SELECT select_list
FROM table_or_view
[INNER] JOIN table_or_view
ON (join_condition)
Outer joins
LEFT OUTER JOIN (LEFT JOIN)
– All rows from the left table named in the
LEFT OUTER JOIN clause are returned
in the result set.
LEFT JOIN syntax:
SELECT select_list
FROM table_or_view
LEFT [OUTER] JOIN table_or_view
ON (join_condition)
Outer joins
RIGHT OUTER JOIN (RIGHT JOIN)
– All rows from the right table named in the
RIGHT OUTER JOIN clause are
returned in the result set.
RIGHT JOIN syntax:
SELECT select_list
FROM table_or_view
RIGHT [OUTER] JOIN table_or_view
ON (join_condition)
Outer joins
FULL OUTER JOIN (FULL JOIN)
– All rows from both tables are returned by
a FULL OUTER JOIN clause.
FULL JOIN syntax:
SELECT select_list
FROM table_or_view
FULL [OUTER] JOIN table_or_view
ON (join_condition)
Class Assignments
Page 543
Try the Join examples included in the
word document
Use Query Analyzer for this
Take a break
Final Test
Next week (5:30 - 7:30)
Chapter 8-14
Open Book Open Notes
Straight Scale >90 = A, >80 = B and so on
In class material (slides and handout)
100 Questions (multiple choice)
200 points
Any questions?