Está en la página 1de 16

Arquitectura de SQL Server

Ing. Patrick Cuadros Quiroga


¿Por qué ACID en SQL Server?
Propiedades ACID de las Transacciones
◦ Atomic
◦ Consistent
◦ Isolated
◦ Durable
SNI (SQL Server Server Network
SELECTSQL Server Interface Interface)
aka API  Protocols
 TCP/IP SQLOS
 Shared Memory
 Named Pipes
 Virtual Interface Adapter (VIA)
TDS packets

SNI (SQL Server Client


Network Interface)
SQLOS, Workers y Schedulers
 SQLOS crea un conjunto de schedulers inicialmente igual al número CPUs logicos.
 Cada scheduler administra workers, para cada tarea (task) a ejecutar es asignado un worker que esta en estado inactivo.
 Los Workers no se mueven entre schedulers, las tareas (tasks) nunca se mueven entre workers. Como sea SQLOS puede
crear tareas hijas y asignarlas a diferentes workers.
 Las tareas (Tasks) solo pueden tener uno de seis estados
 Pending; la tarea esta esperando worker disponible
 Done; la tarea esta completa
 Running; la tarea esta actualmente en ejecución
 Runnable; la tarea esta esperando por un scheduler
 Suspended; la tarea esta esperando por un evento o recursos externo
 Spinloop; la tarea esta procesando un spinlock
4
SQLOS, Workers y Schedulers (II)

 En ejecución
 Cola suspendida y estado suspendido
 Cola ejecutable y estado ejecutable

5
SNI (SQL Server Server Network
SELECTSQL Server Interface Interface)
aka API  Protocols
 TCP/IP SQLOS
 Shared Memory
 Named Pipes
 Virtual Interface Adapter (VIA)
TDS packets

SNI (SQL Server Client


Network Interface) Buffer Pool
Language Event ✓ Language Data Cache
✓ Hash of execution plan

Si el hash de la Database Engine


sentencia no existe Cmd Parser Optimizer
en el Plan Cache Plan Cache
Query Tree Query Plan
¿El hash existe en el
Query Executor Plan Cache?

SI! La sentencia tiene plan existente!


Logical Query Tree
Select * from Customers c inner join Orders o on
c.cid=o.cid where o.date=‘2014-12-12’;

Project
(*)

Filter (o.date=‘2014-12-12’)

Inner Join c.cid=o.cid

Get (customers) as C Get (orders) as O


SELECTSQL Server Interface SNI (SQL Server Server Network
aka API Interface)
 Protocols
SQLOS
 TCP/IP
 Shared Memory
 Named Pipes
TDS packets  Virtual Interface Adapter (VIA)

SNI (SQL Server Client


Network Interface) Language Event Buffer Pool
Data Cache

Database Engine
Cmd Parser Optimizer
Plan Cache
Query Tree Query Plan

Query Executor
Query Optimizer

Parse and logical query Generate physical query


tree Binding, do they exist? plan
Does it make sense and how can I get Do the objects exist? Create path in Most efficient plan (path) to the data.
there? binary from algebrizer for optimizer.

9
Physical Query Tree
SELECTSQL Server Interface
aka API SNI (SQL Server Server Network Database Engine
Interface) Cmd Parser Optimizer
 Protocols
 TCP/IP SQLOS Query Tree Query Plan

 Shared Memory
 Named Pipes Query Executor
TDS packets
 Virtual Interface Adapter (VIA)
SNI (SQL Server Client
Network Interface) Language Event
Existen los datos en
OLE DB
Cache?
Transaction
Log File Storage Engine Buffer Pool
Access Methods
Transaction Manager Data Cache

Buffer Manager
Data File Extraer datos del disco
al cache
Plan Cache
Insert,SQL
Update, Delete
Server Interface
aka API SNI (SQL Server Server Network Database Engine
Interface) Cmd Parser Optimizer
 Protocols
 TCP/IP SQLOS Query Tree Query Plan

 Shared Memory
 Named Pipes Query Executor
TDS packets
 Virtual Interface Adapter (VIA)
SNI (SQL Server Client
Network Interface) Language Event
CheckPoint OLE DB
Transaction
Log File Storage Engine Buffer Pool
Transaction Manager Access Methods Data Cache

Lock and Log


Data File manager
Buffer Manager
Plan Cache
ESPERAS, ESPERAS Y +ESPERAS PageIOLatch_x,
Async_IO_Completion,
SOS_Scheduler_Yield IO_Completion
Async_Network_IO

Pagelatch_x, Latch_x,
Locks Resource_Semaphore
LCK_x, LCK_M_x
Writelog,
LogBuffer
Latches

BackupIO CXPacket

OLEDB IO_Completion

MSQL_DQ
MSQL_XP PreEmptive_OS_
Data File

ThreadPool
WAIT, SQL
WAIT WAIT
Server Interface SOS_Scheduler_Yield,
Async_Network_IO SNI (SQL Server Server Network
aka API Database Engine
CXPacket
Interface) Cmd Parser Optimizer
 Protocols
 TCP/IP Query Tree Query Plan
SQLOS
 Shared Memory
 Named Pipes Query Executor
TDS packets
 Virtual Interface Adapter (VIA)
SNI (SQL Server Client
Network Interface) Language Event
Writelog, Pagelatch_x, Latch_x,
PageIOLatch_x,
LogBuffer Resource_Semaphore
Async_IO_Completion, OLE DB
Transaction IO_Completion
Log File Storage Engine Buffer Pool
Latches
Locks Data Cache
Transaction Manager Access Methods

Lock and Log


Data File manager
Buffer Manager
LCK_x, Plan Cache
LCK_M_x
Data Cache y LRU-K Lista Buffer Libre
Buffer Pool AB C Data File ➢ Cada buffer tiene un SQLOS
encabezado
Data Cache ➢ Las ultimas dos veces Lazy
que la pagina fue Writer
0
referenciada
➢ Información de
estado.
0
LAZY WRITER

AB C AB

15
Hekaton
SQL Server Interface
aka API SNI (SQL Server Server Network Database Engine Natively compiled stored
Interface) procedures
Cmd Parser Optimizer and schema
 Protocols
 TCP/IP SQLOS Query Tree Query Plan

 Shared Memory
 Named Pipes Query Executor
TDS packets
 Virtual Interface Adapter (VIA) In-Memory OLTP Compiler
SNI (SQL Server Client
Network Interface) Language Event
CheckPoint OLE DB
Transaction Memory Optimized Tables
Log File and Indexes
Storage Engine Buffer Pool
Transaction Manager Access Methods Data Cache

Lock and Log


Data File manager
Buffer Manager
Plan Cache

También podría gustarte