Professional Documents
Culture Documents
2012
()
11
12 SQL Server 2012
13 SQL Server
14 SQL Server Agent
15 SQL Server 2012
16 SQL Server 2012
17 SQL Server 2012
18 SQL Server 2012
19 SQL Server 2012
20 SQL Server 2012
SQL Server
SQL Server
SQL Server 2012
Business Intelligence
SQL Server
SQL Server
Database Engine / Data Quality Services
Analysis Services / Data Mining
Reporting Services / Integration Services
Default instance
Named instance
Enterprise
Core Editions
Business Intelligence
Standard
Other Editions
Express
Compact
Developer
SQL Azure
Web
SQL Server
Version
Release Year
1.0
1989
1.1
1991
4.2
1992
4.21
1994
6.0
1995
6.5
1996
7.0
1998
2000
2000
2005
2005
2008
2008
2008 R2
2010
2012
2012
Tabular Data Stream (TDS) Protocol
SQL Native Access Client (SNAC)
Transported by TCP/IP, Named Pipes, Shared Memory
Windows Logins/Windows Groups
SQL Server Logins
SQL Server
Database Engine, Analysis Services, Reporting Services,
Integration Services, SQL Server Compact
Business Intelligence (BI)
Visual Studio 2010
Analysis Services Project
Integration Services project
Reporting Services project
SQL Server
Windows
Windows
SQL Server
SQL Server
CPU
32 64
I/O
SQL Server
Users
Query Execution
Storage Engine
Query Execution
I/O ,
Storage Engine
SQL OS
CPU
Windows
SQL
CPU
SQL Server
32 64
SQL Server
4GB 32
4GB WOW 64
8TB 64
AWE extension 32
SQL Server 2012
Itanium
SQL Server performance 64
Edition
Buffer Pool SQL Server
8 K
SQL
I/O
I/O
Buffer cache
I/O
Buffer cache
2.2
I/O
CPU
30%
NUMA
SQL Server
SQL Server
I/O Data cache, Plan
cache
I/O
database mirroring
/
I/O
I/O
SAN based storage
RAID
I/O
2.3
I/O
SQLIOSIM
SQLIO
I/O
I/O
I/O
OLTP
OLAP
I/O subsystem
I/O
SQLIOSIM
GUI
SQLIO
I/O
3 Microsoft SQL
Server 2012
SQL Server
3.1
I/O
Virtualization
SQL Server 2012 Edition
Maximum Memory
Enterprise
Business Intelligence
64GB
Web
Express
1GB
32 4GB
Windows Server 2012
Windows Server 2008 R2 SP1
Windows 7 SP1
Windows Vista SP2
Domain controllers
64
Filegroup
Transaction logs RAID
array
tempdb
Service Account
Local Service Account
Service account
Windows Collations Windows Locale
SQL Server Collation
SQL
Default Collation Sort Rules
Collation
Service Pack Hotfixes
System State
SQL Server
Error
%programfiles%\Microsoft
SQL Server\110\Setup Bootstrap\Log
Global rules text
Component update
User-requested action
3.3
SQL Server
SQL Server
SQL Server
SQL Server
SQL Server Microsoft
Microsoft
Hotfixes
Cumulative Updates
Service Packs
Setup.exe /q /ACTION=CompleteImage /INSTANCENAME=MYNEWINST
/INSTANCEID=<MYINST> /SQLSVCACCOUNT="<DomainName\UserName>"
/SQLSVCPASSWORD="<StrongPassword>"
/SQLSYSADMINACCOUNTS="<DomainName\UserName>"
/AGTSVCACCOUNT="NT AUTHORITY\Network Service"
/IACCEPTSQLSERVERLICENSETERMS
Setup.exe /q /ACTION=upgrade /INSTANCENAME=MSSQLSERVER
/RSUPGRADEDATABASEACCOUNT="<Provide a SQL Server logon account
that can connect to the report server during upgrade>"
/RSUPGRADEPASSWORD="<Provide a password for the report server
upgrade account>" /ISSVCAccount="NT Authority\Network Service"
/IACCEPTSQLSERVERLICENSETERMS
4
SQL Server
Files FileGroups
SQL Server
SQL Server
Tempdb
SQL Server
HD1
.mdf
HD2
MyDB
.ndf
.ndf
.ldf
HD3
Image, Text
Primary FG
Secondary FG
Third FG
RAID
Log
Data, Log Tempdb
data Log
autogrowth
SQL Server
System
Db
User
Db
Distribution
Master
MSDB
Model
TempDB Resource
Adwork
AdWork
DW
Tempdb
Tempdb
workload SQL Server instance
I/O
tempdb 8
GUI
T-SQL Create database
Collation
Auto Options
Page Verify checksum
Recovery Model Full, Simple,
Bulk
State options Online/Offline,
0
Service account
Log
SSMS
Alter database
DBCC Checkdb Shrinkfile
auto-groth
Time-out
DBCC Shrinkdatabase, DBCC Shrinkfile
Primary filegroup .mdf
Other filegroup .ndf
Log file .ldf
1 File
Disk1
Primary filegroups
C:\mssql2k\data\My_db_primary.mdf
Disk2
FG1 filegroups
D:\mssql2k\data\My_db_secondary1.ndf
Disk3
FG2 filegroups
E:\mssql2k\data\My_db_secondary2.ndf
Disk4
Log File
F:\mssql2k\data\log1.ldf
2 filegroups
Disk1
Primary filegroups
C:\mssql2k\data\My_db_primary.mdf
Disk2
FG1 filegroups
D:\mssql2k\data\My_db_secondary1.ndf
Disk3
Disk4
E:\mssql2k\data\My_db_secondary2.ndf
Log File
F:\mssql2k\data\log1.ldf
RAID
Cont.1
Primary filegroups
C:\mssql2k\data\My_db_primary.mdf RAID 1
RAID
Cont.2
FG1 filegroups
D:\mssql2k\data\My_db_secondary1.ndf RAID 5
RAID
Cont.3
E:\mssql2k\data\My_db_secondary2.ndf RAID 5
RAID
Cont. 4
Log File
F:\mssql2k\data\log1.ldf RAID 10
SAN
RAID1
RAID2
RAID3
RAID4
S1
S2
File filegroups
filegroups
Data file Transaction log
Transaction log filegroups
Datafile filegroup
File Filegroup
db1t.log
.mdf
db1.ndf
Primary FG
db11.ndf
db12.ndf
FG1
db1x.ndf
DB1
db2t.log
.mdf
Primary Fg
DB2
Db2.ndf
Db21.ndf
FG2DB1
Db22.ndf
Filegroup
Db1.log
Db1.mdf
Db2.ndf
Db3.ndf
Primary FG
Db4.ndf
DB1
Table1 (Fields/Records)
Taped1
Db5.ndf
Filegroup ( )
Db2.ndf
Db3.ndf
Db1.log
Db1.mdf
FG1
Primary FG
DB1
Db4.ndf
FG2
Table1 (Fields/Records)
Db5.ndf
File filegroups
Primary data files Transaction log
file
filegroups
Log files Data file Physical Disk
Data file Primary data file
Secondary data file data (
Technique FileGroup Table
FG )
Filegroup ()
Db3.ndf
Db2.ndf
Db1.log
Db1.mdf
FG1
Db4.ndf
Primary FG
FG2
DB1
Tape2
Tape1
Tape3
Db5.ndf
4.3
detach attach
detach attach
detach
Data Log
Detach/Attach
Alter Database
Detach/Attach
Offline
Master
SQL Server services
Alter database
Backup Restore
Detach Attach
Copy Database Wizard
5 Recovery Model
Transaction log
5.1
Data based Backups (Full, Differential, Copy, Filegroup, File)
Log based Backups (Log , Tail Log)
? (RTO)
? (RPO)
Transaction Logs
Checkpoint Options
Data modification is
sent by application
3
Buffer Cache
Modification is recorded
in transaction log on disk
Later, checkpoint
writes dirty pages
to database
Transaction Log
Transaction logs
Truncation Logs
Recovery Model
Simple
Truncates
Full
Bulk Logged
Transaction Logs
Recovery Model
Transaction log Full Bulk
Transactions
Checkpoint Options
Checkpoint
Automatic
Indirect
Manual
Internal
CheckPoint
5.3
DB
Full-Backup
Full
Differential-Backup
Transaction
Transaction log
Full + Diff
Mon
Full
Tue
Wed
Thus
Fri
Diff1
Diff2
Diff3
Diff4
Backup
Full
Diff2
Mon
Full
Tue
Wed
Thus
Tr1
Tr2
Tr3
Fri
Tr4
Backup
Full
Tr1
Tr2
Tr3
Mon
Full
Tue
Wed
Thus
Tr1
Diff1
Tr2
Backup
Full
Diff1
Tr2
Tr3
Fri
Tr3
6
Transaction log
Backup
Full Database
Differential
Transaction Log
Full Database
Full
Log
BACKUP DATABASE {database_name |
@database_name_var}
TO <backup_device> [, ...n]
[WITH
[FORMAT]
[[,] {INIT | NOINIT}]]
]
Meta
mirrored Enterprise Edition
SQL Server 2008
I/O CPU
NT
Differential
Full
Full Backup
Transaction log
differential
BACKUP DATABASE AdventureWorks
TO DISK = 'L:\SQLBackups\AW_Diff.bak'
WITH DIFFERENTIAL, INIT;
Transaction Log
Transaction log
Transaction
Truncates Options
Full Bulk-logged
BACKUP LOG AdventureWorks
TO DISK = 'L:\SQLBackups\AW_Log.bak'
WITH NOINIT;
6.2
Mirrored Media Sets
Mirrored 4
Mirrors
Enterprise Edition
Checksum
checksum
Restore verifyonly
Checksum option
SQL Server
msdb T-sql SSMS
Restore Labelonly
Restore Headeronly
Restore Filelistonly
6.3 Backup
I/O
Transaction log
Log
SQL Writer Service Volume Shadow Copy Service (VSS)
framework
VDI ISVs 3
Copy-only Truncate
Full Model
Copy-only Full
Differential
BACKUP DATABASE AdventureWorks
TO DISK = 'L:\SQLBackups\AW_Copy.bak'
WITH COPY_ONLY, INIT;
Log
Options
NoRecovery
(
Recovering)
Continue_after_error
Point-in-time
7.1
Simple Recovery model
Full Recovery Model
Advanced Online, Piecemeal, Page
Restore
Tail-log
Full Bulk-logged recovery model
Full , File Filegroup
Differential
Full Bulk-logged recovery model
7.2
With recovery
Transaction log
With Standby
3
Redo Transaction
Undo
Redo Undo
With recovery
With recovery (default)
Online
With norecovery
With norecovery
With recovery
Full differential
Restore database
Differential
With norecovery Transaction
log
RESTORE DATABASE
AdventureWorks
FROM DISK =
'D:\SQLBackups\AW.bak'
WITH RECOVERY;
Transaction log
Transaction log Restore log
log
With Standby
read-only
undo
Standby Log
shipping
Log
7.3 Point-in-time
Point-in-time Recovery
Stopat
Stopatmark
Point-in-time Recovery
Transaction log Point in time
Point in time
Transaction
Full recovery model
Logs Bulk_logged
Log
Stopat
SQL Server Management Studio (SSMS)
T-SQL
Stopat with recovery
transaction
point in time
Point in time
Point in time
Stopatmark
Transactions marked
Begin tran <name> with mark <description>
Stopatmark
Stopbeforemark
7.4
System Database
master database
filegroup
System Database
Master > Metadata
Master
2. Path
run (Single
Connection Mode)
3. Result Connection
4. Master DB
SQL CMD
5. Start Service
FileGroup
Backup (Tail-log)
filegroup
Differential
Transaction log
Full/Bulk-logged)
8 SQL Azure
/ SQL Server
Constraints
ETL (Extract, Transform, Load)
Microsoft SQL Server Integration Service
View
Constraints, Indexes, Triggers
triggers
TABLOCK
Bulk_logged Simple model
SQL Servers
Clustered index
Metadata
metadata
Constraints
Primary key Unique
Foreign key
8.2
SQL Server Integration
SQL Server Import/Export Wizard
Dtexec dtexecui
SQL Server Agent jobs
SSIS
SQL Server Business Intelligence Development Studio (BIDS)
Import/Export Wizard
Wizard
8.3
bcp
Bulk Insert
Openrowset
bcp
SQL Instance
Creating a format file:
bcp Adv.Sales.Currency format nul -T -c x -f Cur.xml
Bulk Insert
bcp
SQL
Check_constraints Fire_Triggers
BULK INSERT AdventureWorks.Sales.OrderDetail
FROM 'f:\orders\neworders.txt'
WITH
(
FIELDTERMINATOR ='|',
ROWTERMINATOR ='|\n'
);
GO
Openrowset
OLE-DB provider
Bulk provider
From
Insert ..Select
SELECT *
FROM OPENROWSET(
BULK 'c:\mssql\export.csv',
FORMATFILE = 'c:\mssql\format.fmt',
FIRSTROW = 2) AS a;
GO
9
SQL Server
SQL Server
SQL Server
Windows
SQL Server Logins Policies
SQL Server
Securables
Permissions
Principals
Windows
Windows Group
Domain User Account
Local User Account
ACL
Files
Registry Keys
GRANT/REVOKE/DENY
SQL
Server
Database
CREATE
ALTER
DROP
CONTROL
CONNECT
SELECT
EXECUTE
UPDATE
DELETE
INSERT
TAKE OWNERSHIP
VIEW DEFINITION
BACKUP
Server
Database
Schema
SQL Server
Microsoft SQL Server 2
Windows Authentication
SQL Server and Windows Authentication (Mixed Mode)
Windows
Windows Logins
Object Explorer options SSMS
T-SQL Create Login
Drop Login
error
CREATE LOGIN [AdventureWorks\Student]
FROM WINDOWS
WITH DEFAULT_DATABASE=[tempdb],
DEFAULT_LANGUAGE=[us_english];
GO
CREATE LOGIN [AdventureWorks\Salespeople]
FROM WINDOWS;
GO
account policy
Alter login /
CREATE LOGIN SalesManager
WITH PASSWORD = 'Pa$$w0rd',
CHECK_POLICY = ON;
GO
CREATE LOGIN SalesApp
WITH PASSWORD = 'Pa$$w0rd',
CHECK_POLICY = OFF;
GO
9.2
dbo guest
role
Grant, Deny, Revoke
Logins
Object Explorer options SSMS
T-SQL Create Login
CREATE USER SecureUser
FOR LOGIN SecureUser;
GO
CREATE USER Student
FOR LOGIN [AdventureWorks\Student];
GO
CREATE USER HRApp
FOR LOGIN HRUser;
GO
dbo guest
Dbo
sa syadmin role dbo
Guest
Grant Connect Guest
Windows user
Windows Group
9.3
Double-Hop
Impersonation Delegation
Security IDs
Double-Hop
1
Web Server
Application process
impersonates Bob to access
local resources
DB Server
Impersonation Delegation
Impersonation
Delegation
Security IDs
Security Identifiers (SIDs)
SID Login
SID
10
Server Roles
Public
USE master;
GO
GRANT ALTER ON LOGIN::HRApp
TO [AdventureWorks\Holly];
GO
GRANT ALTER ANY DATABASE
TO [AdventureWorks\Holly];
GO
master
sys.server_permissions
Typical Server-scoped Permissions
ALTER ANY DATABASE
ALTER TRACE
BACKUP DATABASE
BACKUP LOG
CONNECT SQL
CONTROL SERVER
CREATE DATABASE
SHUTDOWN
sysadmin
Dbcreator
diskadmin
ALTER RESOURCES
serveradmin
securityadmin
processadmin
SQL
bulkadmin
setupadmin
Public
Server-scope
Fixed server
View any database
Connect
SQL Server 2012
USE master;
GO
CREATE SERVER ROLE staff;
GO
10.2
Roles
(Database Owner)
USE AdventureWorks;
GO
GRANT CREATE TABLE TO HRManager;
GO
GRANT VIEW DEFINITION TO James;
GO
db_owner
DB
db_securityadmin
db_accessadmin
db_backupoperator
db_ddladmin
DDL
db_datawriter
db_datareader
db_denydatawriter
db_denydatareader
Roles
Object Explorer options SSMS
T-SQL Create Login
USE AdventureWorks;
GO
ALTER ROLE db_datareader
ADD MEMBER James;
GO
(Database Owner)
Dbo sa sysadmin
dbo
10.3
Create role
Roles Owner
Role
Role
USE MarketDev;
GO
CREATE ROLE MarketingReaders
AUTHORIZATION dbo;
GO
GRANT SELECT ON SCHEMA::Marketing
TO MarketingReaders;
GO
dbo
Public
IS_SRVROLEMEMBER, IS_MEMBER
IF IS_MEMBER('BankManagers') = 0
BEGIN
PRINT 'Operation is only for bank manager use';
ROLLBACK;
END;
User runs
app
App connects to db
as user
11
Schema
11.1
Windows
Windows Group
Domain User Account
Local User Account
SQL Server Login
Server Role
User
Database Role
Application Role
SQL Server
Database
SQL Server
Server
Database
Schema
Select
Insert, Update, Delete
References
USE MarketDev;
GO
Grant Deny
GRANT SELECT ON Marketing.Salesperson
( SalespersonID, EmailAlias)
TO James;
GO
DENY SELECT ON Marketing.Salesperson
TO Holly;
GO
GRANT SELECT ON Marketing.Salesperson
( SalespersonID, FirstName, LastName)
TO Holly;
GO
11.2
Stored Procedures
Stored Procedures
Stored Procedures
Execute
Alter
View Definition
USE MarketDev;
GO
GRANT EXECUTE ON
Reports.GetProductColors
TO Mod11User;
GO
Execute Scalar UDFs
Select TVFs
References Check, Default
USE MarketDev;
GO
GRANT EXECUTE ON
Reports.GetProductColors
TO Mod11User;
GO
SQL CLR T-SQL
CLR 3
SAFE ( )
External_access
Unsafe
External_access Unsafe
Unsafe Unrestricted GUI SQL
Server Management Studio
11.3 Schema
User-Schema
Schema
User-Schema
Schemas
Schemas
Dbo
Guest
Sys
Information_schema
Schema,
schema
dbo Schema
, dbo schema
schema
Select ProductID From Production.Product
Schema
Tables, Views, Stored
procedures, Schema
Schema
USE MarketDev;
GO
GRANT EXECUTE
ON SCHEMA::Marketing
TO Mod11User;
GO
GRANT SELECT
ON SCHEMA::DirectMarketing
TO Mod11User;
GO
12.1 SQL
Server
C2 Audit
Common Criteria Audit
Trigger
SQL Trace
C2 Audit
C2
U.S. Trusted Computer Systems Evaluation
Criteria (TCSEC)
Common Criteria
SQL Server C2
SQL Server
C2 audit sp_configure
Trigger
DML (Data manipulation language)
Select
Recursive
SQL Trace
SQL Server Profiler
Error
SQL Trace
Stored procedures
SQL Server
SQL Server
audit
DMVs System Views
Event Windows
SQL Server
SQL Server Audit
SQL Server 2008
Extended Events
SQL server 2012 Enterprise
SQL Server 2012
Audits
Server and Database Audit Specifications
Actions and Action Groups
Targets
SQL Server
SQL Server
audit
(Server)
(Database)
(Audit)
Application Windows
Windows
SQL Server Service
Account Generate Security Audits
Audit name
SQL Server
Audit destination
Maximum rollover files
Maximum file size (MB)
GUI T-SQL
CREATE SERVER
AUDIT SPECIFICATION
FailedLoginSpec
FOR SERVER AUDIT
Audit-20121222-171544
ADD (FAILED_LOGIN_GROUP);
GUI T-SQL
CREATE DATABASE
AUDIT SPECIFICATION
BackupRestoreSpec
FOR SERVER AUDIT
Audit-20121222-171544
ADD (BACKUP_RESTORE_GROUP);
Log viewers
sys.fn_get_audit_file
SELECT * FROM sys.fn_get_audit_file(
'J:\SQLAudits\Audit\LoginLogoutLog\*',
NULL,
NULL);
4000
Sequence_no
SQL server
SIDs
GUID
Create Server audit
Edition SQL Server
Mirror
GUIDs
13 SQL Server
SQL Server
SQL Server Agent
SQL Server Agent Jobs
SQL Server
SQL Server
GUI
Jobs
Alerts
Operators Jobs Alerts
Windows
Execute jobs
Fire alerts
Contact Operators
Automatic
Jobs,
Job Job
Job
Jobs
Jobs
Jobs
SQL Server Agent
Jobs
Job
Job step 1: Back up Database
(Transact-SQL)
Fail?
Yes
Write to
Application Log
No
Job step 2: Transfer Data
(CmdExec)
Fail?
Yes
Notify operator
No
Job step 3: Custom Application
(PowerShell)
Fail?
No
Job succeeded
Notify operator
Yes
Jobs
Job
Job
Jobs
Jobs
> Script Job as > Create to > New
Query Editor Window
Job
SELECT j.name, jh.run_date, jh.run_time, jh.message
FROM msdb.dbo.sysjobhistory AS jh
INNER JOIN msdb.dbo.sysjobs AS j
ON jh.job_id = j.job_id
WHERE jh.step_id = 0;
GO
SQL Server Agent
Service
msdb
job
Job
Job
Job
Job
Job
Schedule
14 SQL Server
Agent
Agent Job
SQL Server Agent
T-SQL job
Windows Network Job Proxy
Accounts
SQLAgentUserRole
Jobs Schedules
SQLAgentReaderRole
SQLAgentUserRole
permission View
SQLAgentOperatorRole
Jobs
View proxies
proxies Alerts
Agent Job
Job T-SQL
SQL Server Agent Job
sysadmin
SQL
Server Agent service account
sysadmin
T-SQL Job
14.2
(Credentials)
Service Master key
Windows SQL Server
Proxy accounts
T-SQL SSMS
master Service master
key
USE master;
GO
CREATE CREDENTIAL Agent_Export
WITH IDENTITY = N'VIENNA\Agent_Export',
SECRET = N'Pa$$w0rd';
GO
sys.credentials
Alter credential
Drop credential
SELECT * FROM sys.credentials;
GO
ALTER CREDENTIAL Agent_Export
WITH IDENTITY = N'VIENNA\Agent_Export',
SECRET = N'NewPa$$w0rd';
GO
DROP CREDENTIAL Agent_Export;
GO
Proxy Accounts
Proxy Accounts SQL Server Agent
Microsoft Windows
SSMS dbo.sp_add_proxy
msdb
sysadmin
SQL Login
Msdb server role
Job Step
Proxy
Credential
Resource
Proxy
Proxies SQL Server Subsystems
Proxies subsystems
Proxy Accounts
Proxies msdb
msdb
Sysproxies, sysproxylogin, sysproxyloginsubsystem,
syssubsystems
USE msdb;
GO
SELECT p.name as ProxyName,
c.name as CredentialName,
p.description as ProxyDescription
FROM dbo.sysproxies AS p
INNER JOIN sys.credentials AS c
ON p.credential_id = c.credential_id;
Database Mail
Database Mail smtp
E-mail
Database mail configuration Wizard
Service Broker
Private
Private profile
Public profile
Public
Database Mail
Database mail:
SQL Server Engine
Stored procedures
DatabaseMailUserRole msdb
( Sysadmin server )
Private profiles
Database mail
Database Mail
msdb
USE msdb;
GO
DECLARE @CutoffDate datetime ;
SET @CutoffDate = DATEADD(m, -1,SYSDATETIME());
EXECUTE dbo.sysmail_delete_mailitems_sp
@sent_before = @CutoffDate;
EXECUTE dbo.sysmail_delete_log_sp
@logged_before = @CutoffDate;
GO
Error number
Error Message
Severity
State
Procedure Name
Line Number
error
Error
Error
error
Stored procedures Trigger
batch, stored procedure, trigger
SQL Server
error
0 to 9
10
11 to 16
17 to 19
20 to 24
25
Software errors
SQL Server Service error
6
sp_cycle_errorlog
Fail-safe operator
Alerts
Operator
Job
Alerts
SSMS sp_add_alert
EXEC msdb.dbo.sp_add_alert
@name=N'AdventureWorks Transaction Log Full',
@message_id=9002, @delay_between_responses=0,
@database_name=N'AdventureWorks';
GO
Alert
Job
Job
Tokens
Operators
EXEC msdb.dbo.sp_add_notification
@alert_name
= N'AdventureWorks Transaction Log Full',
@operator_name=N'SQL Admins',
@notification_method = 1;
GO
Alerts Notification
SQL Server Agent
Error message Application log
Application
Alert
alert
Alert
Job
Database mail SMTP server configuration
database mail SSMS
16.1
DBCC Checkdb
DBCC checkdb
DBCC checkdb repair
DBCC Checkdb
Filestream
Service Broker
permit data loss
DBCC checkdb
PHYSICAL_ONLY
NOINDEX
nonclustered indexes
EXTENDED_LOGICAL_CHECKS
logical , spatial
XML
TABLOCK
ALL_ERRORMSGS
NO_INFOMSGS
ESTIMATEONLY
200
error
tempdb
Data loss
16.2
SQL Server
Fillfactor Pad_index
Table Scan
Index
Microsoft SQL Server
SQL Server
B-tree
Clustered index (Leaf level)
Nonclustered index leaf level
id
index_id
root_page
Intermediate
Level
Leaf Nodes
Index Pages
Internal
External
SQL Server management studio Index
properties
System function sys.dm_db_index_physical_stats
Fillfactor Pad_index
clustered indexes
FillFactor ()
Pad_index ( root )
ALTER TABLE Person.Contact
ADD CONSTRAINT PK_Contact_ContactID
PRIMARY KEY CLUSTERED
(
ContactID ASC
) WITH (PAD_INDEX = OFF, FILLFACTOR = 70);
GO
(Rebuild)
Transaction log
(Reorganize)
Transaction log
ALTER INDEX CL_LogTime ON dbo.LogTime
REBUILD;
ALTER INDEX ALL ON dbo.LogTime
REORGANIZE;
Shared lcoks
Schema
ALTER INDEX IX_Contact_EmailAddress
ON Person.Contact REBUILD
WITH ( PAD_INDEX = OFF,
FILLFACTOR = 80,
ONLINE = ON,
MAXDOP = 4 );
AUTO_UPDATE_STATISTICS
UPDATE STATISTICS
sp_updatestats
SQL Server
16.3
SQL Server Database maintenance
Database Maintenance
SQL Server Agent
SSIS
Wizard
Database Maintenance
Job Activity Monitor
msdb
Operator
Tracing
Profiler traces
( 5 MB )
()
Trace Events
Events
Categories
SQL:BatchCompleted
SQL:StmtCompleted
RPC:Completed
Deadlock Graph
Trace columns
Trace
Traces
Trace
Trace Template
Trace templates
SQL Server
Standard template
Template
database engine
Analysis services
SQL Server Profiler users
SQL Server Management Studio
Performance tuning
Performance tuning
Database Engine Tuning Advisor
SSMS
Database Engine
Tuning Advisor
Reports and
Recommendations
17.3 Tracing
SQL Trace
SQL Trace SQL Server Profiler
Trace
Trace
Trace
Trace Reliability and Performance Monitor
Logs
SQL Trace
SQL Trace System stored
procedures SQL server
SQL Server Profiler SQL Traces
Events SMO
SQL Server Profiler SMO Traces
Trace
SQL Server Traces
Traces
SQL Server Profiler
SQL Server Table
CREATE TABLE dbo.tracetable
(
TextData nvarchar(max) NULL,
BinaryData varbinary(max) NULL,
...
);
INSERT INTO dbo.tracetable
SELECT * FROM
fn_trace_gettable('L:\Traces\adworks.trc',default);
Trace
Trace
TSQL-Replay trace template
Trace
Trace
SQL Server
sp_configure
EXEC sp_configure 'show advanced options' , 1;
RECONFIGURE;
EXEC sp_configure 'default trace enabled' , 1;
RECONFIGURE;
EXEC sp_configure 'show advanced options' , 0;
RECONFIGURE;
18.1
SQL Server
sys.dm_exec_%
sys.dm_os_%
sys.dm_tran_%
Transaction Management
sys.dm_io_%
sys.dm_db_%
counter
data collector data collectors
CPU
Memory
Disk System
Network
SQL Server Counters
sys.dm_os_performnace_counters
18.2
Data Collector
Data collector
Data collector
Data collector
Data collector
Data Collector
Data collector SQL Server
Data collection
SQL Server
Data collector
SSIS SQL Agent jobs
SSMS
Data Collector
Performance Counter
SQL Trace
T-SQL
Data Collector
Performance Counter
SQL Trace
T-SQL
Data Repository
Centralized Data
Storage
Reporting
Data collector
Wizard-based
Data warehouse
System Data collection
Data collector
Data warehouse
Role
mdw_admin
Full
mdw_writer
data collectors
mdw_reader
Data collector
Role
dc_admin
Full
dc_operator
dc_proxy
Data collector
msdb
Stored procedures SSIS logging
Collection set
T-SQL
18.3
Collection
Collection
Data collector
SQL Server Management Studio
CPU, Duration, Reads, Writes
CPU, Memory, Disk, Network I/O
SQL Server Waits SQL Server
Disk Usage System Data Collection Set
T-SQL collector
6
730
Server Activity System Data Collection Set
DMV snapshot Performance counter
60 15
14
Query Statistics System Data collection
Activity collector
10 15
14
19.1
Central Management
Multi-server
Central Management
Central Management Servers
CMS
T-SQL
Policy-Based management
Object Explorer
Windows Authentication
ServerGroupReaderRole
Multi-server
T-SQL
Child Partition
Windows Server
SQL Server
Hyper-V Hypervisor
Hardware
Child Partition
Windows Server
SQL Server
Virtualization
SQL Server
Stand alone
failover clusters Live Migration
SLA
CPU ,
CPU
CPU
Hyper-V
SCVMM Virtual
machine
System Center Suite
System Center Operations Manager
(SCOM)
19.3 Data-tier
Data-tier
Data-tier
Data-tier
Data-tier
Data-tier
T-SQL
Data-tier
Wizard
Model
.dacpac
Data-tier
Wizard
Change schema
T-SQL
Powershell
Data-tier
Data-tier
SSMS
Visual Studio
SQL Server
20.2
SQL Server Error
Windows Event
Windows SQL Error
SQL Server
SQL DAC
SQL Server
Windows
master model
tempdb
Command Prompt
Windows Event
System Windows
20.3
SQL Server
Shared Memory
Shared Memory
Windows Logins
Domain Controller
SQL Server Domain controller
Connect
20.4
Deadlock
(Shared Locks)
(Exclusive locks)
ACID
Atomicity > process fail
Consistency >
Isolation > transaction
Durability >
DB
error
SQL server Activity Monitor
Dynamic Management Views
SQL Server Data Collector
Autocommit Transactions
Default transaction mode
statement committed
rolled back
it is committed
it is rolled back
Compile Error
Autocommit
T-SQL
Deadlock ( commit )
user ( commit
)
Autocommit
commit rollback
process
ATM
Explicit Transaction
mode BEGIN
TRANSACTION COMMIT TRANSACTION
process transaction user
process rollback
( Data Begin Transaction )
user defined Transaction ( SQL2000
)
Explicit Transactions
BEGIN TRANSACTION
COMMIT TRANSACTION
ROLLBACK TRANSACTION
BEGIN TRANSACTION fund_transfer
EXEC debit_checking '100', 'account1'
EXEC credit_savings '100', 'account2'
COMMIT TRANSACTION
SAVE TRANSACTION
save point rollback (
rollback
)
Transaction log
SAVE TRANSACTION
Explicit Transaction
CREATE DATABASE
DROP DATABASE
ALTER DATABASE
BACKUP
RECONFIG
RESTORE
UPDATE STATISTICS
Implicit Transaction
BEGIN TRANSACTION
SQL SERVER Transaction
COMMIT TRANSACTION
Implicit Transactions
Setting implicit transaction mode on
SET IMPLICIT_TRANSACTIONS ON
INSERT
CREATE
OPEN
DELETE
REVOKE
DROP
SELECT
FETCH
TRUNCATE TABLE
GRANT
UPDATE
Implicit Transaction
Transactions Database
Buffer
( process )
Buffer RAM ( Server ) 2
1. Log Record Buffer
2. Database Buffer
Database Buffer
Memory Data SQL Server select
edit
edit Harddisk
Database Buffer
Modified Buffer (dirty pages)
Commit Modified Buffer
DB
Checkpoints
SQL Server Dirty
Pages ( ) Database
recovery Transaction Log
Transactions
Keep transactions as short as possible
Use caution with certain Transact-SQL statements
Avoid transactions that require user interaction
Do not browse data during a transaction
Affect the least rows possible with DML statements
Access the least rows possible with SELECT statements
@@trancount
@@trancount
Certain statements may not be included in explicit
transactions, such as:
ALTER DATABASE
RECONFIGURE
BACKUP
RESTORE DATABASE
CREATE DATABASE
RESTORE
DROP DATABASE
UPDATE STATISTICS
Lost updates
Uncommitted dependencies (dirty read)
Inconsistent analysis (nonrepeatable read)
Phantom reads
Lockable
Item
RID
KEY
PAGE
EXTENT
TABLE
HOBT
FILE
APPLICATION
METADATA
ALLOCATION_UNIT
DATABASE
Description
Row identifier
Row lock within an index
Data page or index page
Group of pages
Entire table
A heap or B-tree
A database file
An application-specified resource
Metadata locks
An allocation unit
Entire database
Locks
Basic locks
Shared > Lock select
Exclusive > Lock insert, update, delete
Lock Compatibility
Some locks are compatible with other locks, and
some locks are not
Shared locks are compatible with all locks
except exclusive
Exclusive locks are not compatible with any other locks
Update locks are compatible only with shared locks
Session-Level
Transaction isolation level
READ UNCOMMITTED
READ COMMITTED (default)
REPEATABLE READ
SERIALIZABLE
Locking timeout
Limits time waiting for a locked resource
Use SET LOCK_TIMEOUT
Read Uncommited
Isolation Level
lock
Read Only
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Read Uncommitted
Session2
Default of SQL2008
Commit
Dirty Read
Web Applilcation
( After commit )
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
Read Committed
Session2
Repeatable Read
Hold Lock
lock transaction commit
Lost update, Dirty Read, Non Repeatable
Read
Repeatable Read
SERIALIZABLE
Isolation level
concurrency control
lock Deadlock
SERIALIZABLE
Dynamic Locking
Dynamic
Locking
Cost
Row
Locking Cost
Concurrency Cost
Page
Granularity
Table
Deadlocks ?
How SQL server ends a deadlock
How to minimize deadlocks
How to customize the lock time-out setting
Transaction A
Transaction B
UPDATE Supplier
UPDATE Part
UPDATE Part
UPDATE Supplier
Supplier
Part
AB
Locking Information