Microsoft SQL Server
Microsoft SQL Server
Índice
Versiones
Características
Programación
T-SQL
Cliente Nativo de SQL
Ediciones y servicios
Enterprise
Developer
Standard
Express
SQL Azure
Interfaz de usuario
Servicios
Capacidades y herramientas básicas
Bases de datos
Tablas fijas y temporales
Tipos de datos
Vistas
Procedimientos almacenados
Funciones definidas por el usuario
Consultas Distribuidas
Transacciones
El optimizador
Privilegios y seguridad de datos
Otras herramientas de servicio
Respaldos y recuperaciones
Compresión
Replicación, alta disponibilidad, y recuperación de desastres
El agente y la programación de tareas
Mantenimiento
Service Broker
Enviar Correos Electrónicos
Full Text Search (Búsqueda de Textos completos)
Rastrear
Combinación de CLR
Herramientas de Inteligencia empresarial
SSIS (SQL Server Integration Services)
SSAS (SQL Server Analysis Services)
SSRS (SQL Server Reporting Services)
Desventajas
Véase también
Referencias
Enlaces externos
Versiones
El código fuente original de SQL Server que fue utilizado en las versiones previas a la versión 7.0 habría
sido comprado de Sybase, pero fue actualizado en las versiones 7.0 y 2000, y reescrito en la versión
2005. Generalmente, cada 2-3 años, una nueva versión es lanzada y, entre estos lanzamientos, se
proponen service packes con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en el
sistema de seguridad o bugs críticos.
Características
Soporte de transacciones.
Soporta procedimientos almacenados.
Incluye también un entorno
gráfico de administración, que Historia de versiones5
permite el uso de comandos Versión Año Nombre de la versión Nombre clave
DDL y DML gráficamente.
1.0
Permite trabajar en modo (OS/2)
1989 SQL Server 1-0 SQL
cliente-servidor, donde la
información y datos se alojan 4.21
1993 SQL Server 4.21 SEQUEL
en el servidor y los terminales (WinNT)
o clientes de la red sólo 6.0 1995 SQL Server 6.0 SQL95
acceden a la información.
6.5 1996 SQL Server 6.5 Hydra
Además permite administrar
información de otros 7.0 1998 SQL Server 7.06 Sphinx
servidores de datos. SQL Server 7.0
- 1999 Plato
Este sistema incluye una versión OLAP Tools
reducida, llamada MSDE con el 8.0 2000 SQL Server 20007 Shiloh
mismo motor de base de datos pero SQL Server 2000
8.0 2003 Liberty
orientado a proyectos más pequeños, 64-bit Edition
que en sus versiones 2005 y 2008 9.0 2005 SQL Server 20058 Yukon
pasa a ser el SQL Express Edition,
10.0 2008 SQL Server 20089 Katmai
que es una edición que se distribuye
en forma gratuita. 10.25 2010 SQL Azure DB CloudDatabase
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye
interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor sólo está
disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la versión
2008 R2.
Programación
T-SQL
T-SQL (Transact-SQL) es el principal medio de interacción con el Servidor, el cual permite realizar las
operaciones claves en SQL Server, incluyendo la creación y modificación de esquemas de base de datos,
inserción y modificación de datos en la base de datos, así como la administración del servidor como tal.
Esto se realiza mediante el envío de sentencias en T-SQL y declaraciones que son procesadas por el
servidor y los resultados (o errores) regresan a la aplicación cliente.
Ediciones y servicios
Cada versión de SQL Server posee distintas versiones con distintos precios (para cada versión) que
dependen también en la configuración física del servidor. 13 A continuación se presentan las versiones
principales:
Enterprise
Contempla todas las características (deshabilitadas en otras ediciones).Es el tipo de versión con más
privilegios existente en el mercado.
Developer
Una edición con las mismas características que la Enterprise, con el fin de ser instalada solamente en
ambiente de desarrollo y no en producción. Si se desarrolla para una edición Standard hay que tener en
cuenta las características deshabilitadas para esta versión.
Standard
Una versión limitada según la configuración del servidor y sus características, diseñada para servidores
inferiores.
Por ejemplo: en la versión 2012, la edición Enterprise soporta un número ilimitado de procesadores, y la
agregación de memoria y CPUs en caliente sin la interrupción del servicio o del servidor; mientras la
edición Standard esta limitada a 16 procesadores y no soporta la "agregación en caliente".
Express
Una versión gratuita que posibilita la creación de bases de datos limitadas con características básicas, con
el fin de apoyar aplicaciones que necesiten una solución simple para almacenamiento de una cantidad
limitada de datos, o usuarios que sus recursos y necesidades son limitados.
En la versión 2012, esta edición puede utilizar un máximo de 1 GB de memoria, y almacenar no más de
10GB, funciona en servidores con un número máximo de cuatro procesadores. Estas limitaciones se
mantienen en la versión 2014 (4 cores, 1GB ram, y 10Gb por base de datos).
SQL Azure
Es una versión de SQL Server en la nube, que permite pagar mensualmente por el servicio sin la
necesidad de mantener un servidor físico (On Premise). La empresa paga solo por el servicio, y el
servicio es manejado a través de torres de servidores en distintos lugares en el mundo.
Con SQL Azure no es necesario instalar, mantener o actualizar un servidor físico; a pesar que este
servicio depende de aspectos relacionados a problemas de seguridad con respecto a su presencia fuera de
la empresa y a la disponibilidad de conexión a Internet.
Durante un tiempo, el servicio fue ampliado con la opción de crear un servidor virtual por la red, e
instalar SQL Server tanto como uno de los servicios competidores, y manejar el servidor virtual como si
fuera un servidor físico local (aunque físicamente no está accesible); y se puede diferenciar entre la
opción original que esta denominada PAAS (Platform as a Service: El Plataforma como un Servicio) y la
nueva opción de los servidores virtuales denominada IAAS (Infrastructure as a Service, Infraestructura
como un Servicio).
Este servicio esta otorgado por Microsoft desde 2009 y se une a servicios similares de empresas de third-
party.
Interfaz de usuario
SQL Server proporciona unos interfaces que han cambiado durante los años, de los cuales los más
conocidos son los interfaces gráficos que están utilizados como herramienta de desarrollo estándar a los
desarrolladores y administradores.
La interfaz gráfica hasta 2005 incluyó el Enterprise Manager con una vista de árbol de los distintos
objetos y con la capacidad de manejarlos; y el Query analyzer como interfaz textual para ejecutar
comandos de TSQL.
En la versión 2005 las dos herramientas se unificaron a una –el SQL Server Management Studio (SSMS),
y a partir de 2008 fue incluida la opción de trabajar con el Visual Studio– la interfaz estándar de
desarrollo de Microsoft (a los distintos lenguajes, BI, etc.). Otro interfaz opcional es la utilización de
Línea de comandos, con herramientas como SQLCmd, ISQL, OSQL que posibilita la ejecución de scripts
y procesamiento por lotes. Desde 2008 se puede desarrollar con SQLCmd (SQL Command) a través del
SSMS sin interconectarse al interfaz textual de Windows. Otra opción en el ámbito de scripts es la
utilización del lenguaje de scripts Powershell de Microsoft.
Aparte de los interfaces estándares de SQL Server, se puede ejecutar comandos de TSQL con
herramientas de conexión como ODBC y OLE-DB.14
Servicios
A contrario de sistemas de bases de datos como Microsoft Access que son "pasivas" y contienen un
archivo a cual hay que conectar y la ejecución de los comandos se lleva a cabo en el cliente (la
computadora de usuario), en SQL Server hay número de servicios, software que están ejecutadas en la
memoria del servidor por parte del sistema, y por lo tanto aprovechan las capacidades del servidor que es
más potente que los clientes, previenen congestión en la red, y pueden programar tareas que corran
aunque el cliente no está conectado.
Bases de datos
En cada instalación de SQL Server hay 4 bases de datos de sistema, y la capacidad de crear nuevas bases
de datos por el usuario, en los cuales los datos están almacenados en tablas.
Estas bases de datos, creadas por parte de los usuarios, incluyen básicamente un archivo de datos (con el
sufijo mdf) con las tablas y los distintos objetos a nivel de la base de datos; y un archivo de registro (con
el sufijo ldf) con las transacciones abiertas, y transacciones cerradas, Sujeto al modelo de recuperación
seleccionado (se puede acumular en el archivo de registro todos los cambios en la base de datos desde el
último respaldo). Se puede crear un conjunto de archivos de datos además del principal (con el sufijo
ndf) por consideraciones de eficiencia, partición de carga de trabajo entre los discos rígidos, etc.
master - Todos los procedimientos, funciones y tablas del sistema que están utilizadas por
parte de todas las bases de datos y que están instaladas automáticamente, tanto como las
que han sido creado por parte de los administradores del sistema. Además, todas las
definiciones en respecto a la seguridad a nivel del servidor, están almacenadas en esta
base de datos.
msdb - Almacenamiento de las tareas del agente, los códigos de CLR combinados en el
sistema, los paquetes de SSIS, y otros más.
model - El molde de las bases de datos. Cada nueva base de datos se crea como una
copia de esta base de datos, menos que algo más estaba definido explícitamente.
tempdb - Base de datos temporal que se crea de nuevo cada vez que el servicio reinicia.
Se utiliza para almacenar tablas temporales creadas por parte de los usuarios o el sistema
(por ejemplo en ordenaciones complejos).
Tablas fijas y temporales
Desde la perspectiva lógica, los datos almacenados en las bases de datos en tablas, que mediante ellas se
implementa la teoría de las bases de datos relacionales. La tabla se divide en filas y columnas (A veces se
les conoce como registros y campos). Las tablas pueden ser fijas o temporales, mientras que en el
segundo caso existen físicamente en la base de datos tempdb, y se borran automáticamente en caso de
desconexión de la sesión o de la conexión al servidor, depende en el tipo de la tabla temporal.
Desde la perspectiva física, el sistema divide los archivos de la base datos en Extents de 64 KB, y cada
cual a ocho páginas de 8 KB. Generalmente, cada Extent se asigna a una tabla o un índice, menos las
tablas pequeñas; y cada página se asigna siempre a una tabla específica. El sistema es responsable del
aumento de los archivos, de acuerdo con los ajustes del usuario, y de asignar Extents y páginas a las
tablas.
A las tablas se puede crear índices. Los índices se almacenan junto a la tabla (Non Clustered Index) o son
la tabla en sí (Clustered Index). Los índices asisten en la búsqueda de datos en las tablas (como los
ficheros en las librerías), en ordenarlas, y la definición de claves primarias.
Aparte de las tablas de los usuarios, hay tablas que almacenan meta data: datos sobre el sistema mismo,
los diferentes objetos, los derechos, estadísticas sobre el rendimiento del sistema (DMV), etc.
Tipos de datos
Para cada columna en una tabla y a cada variable o parámetro, se define un tipo de datos que sean
almacenados en él, entre ellos:
Vistas
Las vistas representan generalmente comandos de extracción de datos, que se almacenan sin los datos
(que están almacenados en las tablas). Esta opción nos posibilita crear extracciones complejas o
estándares, almacenarlas como vistas, y utilizar las vistas sin la necesidad de escribir de nuevo los
comandos o mantener los códigos donde ellas aparecen. Adicionalmente, es un medio muy importante
para otorgar derechos selectivos de lectura (en caso que queremos posibilitar a un usuario contemplar
parcialmente las columnas o las filas de una tabla).
Una vista se puede considerar una tabla virtual o una consulta almacenada. Los datos accesibles a través
de una vista no están almacenados en un objeto distinto de la base de datos. Lo que está almacenado en la
base de datos es una instrucción SELECT. El resultado de la instrucción SELECT forma la tabla virtual
que la vista devuelve. El usuario puede utilizar dicha tabla virtual haciendo referencia al nombre de la
vista en instrucciones Transact-SQL, de la misma forma en que se hace referencia a las tablas. Las vistas
se utilizan para alguna de estas funciones, o para todas:
• Restringir el acceso del usuario a filas concretas de una tabla. Por ejemplo, permitir que un empleado
sólo vea las filas que guardan su trabajo en una tabla de seguimiento de actividad laboral.
• Restringir el acceso del usuario a columnas específicas. Por ejemplo, permitir que los empleados que no
trabajen en el departamento de nóminas vean las columnas de nombre, oficina, teléfono y departamento
de la tabla de empleados, pero no permitir que vean las columnas con los datos de salario u otra
información personal.
• Combinar columnas de varias tablas de forma que parezcan una sola tabla.
• Agregar información en lugar de presentar los detalles. Por ejemplo, presentar la suma de una columna
o el valor máximo o mínimo de una columna.
Las vistas se crean definiendo la instrucción SELECT que recupera los datos presentados por la vista.
Las tablas de datos a las que hace referencia la instrucción SELECT se conocen como las tablas base
para la vista. Las vistas en todas las versiones de SQL Server son actualizables (pueden ser objetivo de
instrucciones UPDATE, DELETE o INSERT) mientras la modificación afecte sólo a una de las tablas
base de la vista.
Procedimientos almacenados
Los procedimientos son scripts de comandos de TSQL, que pueden ser ejecutados con distintos
parámetros. Por ejemplo, procedimiento que obtiene número de año como parámetro, y actualiza una
tabla de resumen de ventas, con las ventas de los agentes en el dicho año, basada en la tabla de registro
de ventas.
Los procedimientos almacenados pueden facilitar en gran medida la administración de la base de datos y
la visualización de información sobre dicha base de datos y sus usuarios. Los procedimientos
almacenados son una colección precompilada de instrucciones SQL e instrucciones de control de flujo
opcionales almacenadas bajo un solo nombre y procesadas como una unidad. Los procedimientos
almacenados se guardan en una base de datos; se pueden ejecutar desde una aplicación y permiten
variables declaradas por el usuario, ejecución condicional y otras funciones eficaces de programación.
Los procedimientos almacenados pueden contener flujo de programas, lógica y consultas a la base de
datos. Pueden aceptar parámetros, proporcionar resultados de parámetros, devolver conjuntos de
resultados individuales o múltiples y devolver valores.
Las ventajas de utilizar procedimientos almacenados en SQL Server en vez de programas Transact-SQL
almacenados localmente en equipos clientes consisten en que:
• Permiten una programación modular.
Puede crear el procedimiento una vez, almacenarlo en la base de datos, y llamarlo desde el programa el
número de veces que desee. Un especialista en programación de bases de datos puede crear
procedimientos almacenados, que luego será posible modificar independientemente del código fuente del
programa. Facilitan el mantenimiento.
• Permiten una ejecución más rápida.
En situaciones en las que se necesita una gran cantidad de código Transact-SQL, o si las operaciones se
realizan varias veces, los procedimientos almacenados pueden ser más rápidos que los lotes de código
Transact-SQL. Los procedimientos son analizados y optimizados en el momento de su creación, y es
posible utilizar una versión del procedimiento que se encuentra en la memoria después de que se ejecute
por primera vez. Las instrucciones de Transact-SQL que se envían varias veces desde el cliente cada vez
que deben ejecutarse tienen que ser compiladas y optimizadas siempre que SQL Server las ejecuta.
• Pueden reducir el tráfico de red.
Una operación que necesite centenares de líneas de código Transact-SQL puede realizarse mediante una
sola instrucción que ejecute el código en un procedimiento, en vez de enviar cientos de líneas de código
por la red.
• Pueden utilizarse como mecanismo de seguridad.
Es posible conceder permisos a los usuarios para ejecutar un procedimiento almacenado, incluso si no
cuentan con permiso para ejecutar directamente las instrucciones del procedimiento.
Las funciones definidas por el usuario se crean con la instrucción CREATE FUNCTION, se modifican
con la instrucción ALTER FUNCTION y se quitan con la instrucción DROP FUNCTION. Todos los
nombres de funciones completos (database_name.owner_name.function_name) definidos por el usuario
deben ser únicos. Para crear, modificar o quitar funciones definidas por el usuario, debe tener permisos
de CREATE FUNCTION. Los usuarios distintos del propietario deben tener permiso EXECUTE para
una función, y solo así podrán utilizarla en una instrucción de Transact-SQL. Para crear o modificar
tablas con referencias a funciones definidas por el usuario en la restricción CHECK, la cláusula DEFAULT
o la definición de una columna calculada, también debe tener permiso REFERENCES para las funciones.
Los errores de Transact-SQL que producen la cancelación de una instrucción y continúan con la siguiente
instrucción del módulo, como desencadenadores o procedimientos almacenados, se tratan de forma
distinta dentro de una función. En las funciones, estos errores hacen que se detenga la ejecución de la
función. Esto hace que se cancele la función que invocó la instrucción. Una función definida por el
usuario no tiene ninguno o tiene varios parámetros de entrada y devuelve un valor escalar o una tabla.
Una función puede tener un máximo de 1024 parámetros de entrada. Cuando un parámetro de la función
toma un valor predeterminado, debe especificarse la palabra clave DEFAULT al llamar a la función para
poder obtener el valor predeterminado. Este comportamiento es diferente del de los parámetros con
valores predeterminados de los procedimientos almacenados, para los cuales omitir el parámetro implica
especificar el valor predeterminado. Las funciones definidas por el usuario no admiten parámetros de
salida.
Consultas Distribuidas
Las consultas distribuidas tienen acceso a datos de varios orígenes, que pueden estar almacenados en un
equipo o en equipos distintos. Microsoft SQL Server 2000 admite las consultas distribuidas a través de
OLE DB Las consultas distribuidas proporcionan a los usuarios de SQL Server acceso a:
• Datos distribuidos almacenados en múltiples instancias SQL Server.
• Datos heterogéneos almacenados en varios orígenes de datos relacionales y no relacionales a los que se
tiene acceso mediante un proveedor OLE DB.
Los proveedores OLE DB exponen datos en objetos tabulares llamados conjuntos de filas. En las
instrucciones Transact-SQL, SQL Server 2000 permite que se haga referencia a los conjuntos de filas de
los proveedores OLE DB como si fueran una tabla de SQL Server. En las instrucciones SELECT,
INSERT, UPDATE y DELETE de Transact-SQL, se puede hacer referencia directa a las tablas y vistas de
orígenes de datos externos. Puesto que las consultas distribuidas usan OLE DB como interfaz
subyacente, éstas tienen acceso a los sistemas DBMS relacionales tradicionales con procesadores de
consultas SQL, así como a los datos administrados por orígenes de datos de capacidad y sofisticación
diversas. Siempre que el software propietario de los datos los expone en un conjunto de filas tabular a
través del proveedor OLE DB, los datos se podrán usar en las consultas distribuidas. Nota: El uso de las
consultas distribuidas en SQL Server es similar a la funcionalidad de las tablas vinculadas mediante
ODBC, que anteriormente admitía Microsoft Access. Esta funcionalidad se encuentra ahora integrada en
SQL Server con OLE DB como interfaz para los datos externos.
Transacciones
Una transacción es un conjunto de comandos, que se está ejecutado completamente o no ejecutado en
absoluto: todo o nada. Por ejemplo, si una suma de dinero fue trasladada de una cuenta bancaria a otra, y
hay que actualizar ambas cuentas sobre el depósito y la retirada; es obligatorio que ambas cuentas se
actualizan juntas, o ninguna (en caso que una de las actualizaciones falla); para evitar consecuencias
inconsistentes de un depósito sin ninguna retirada, o viceversa. Por lo tanto, una transacción es una
secuencia de operaciones realizadas como una sola unidad lógica de trabajo. Una unidad lógica de
trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia,
aislamiento y durabilidad), para ser calificada como transacción:
Atomicidad
Una transacción debe ser una unidad atómica de trabajo, tanto si se realizan todas sus modificaciones en
los datos, como si no se realiza ninguna de ellas.
Coherencia
Cuando finaliza, una transacción debe dejar todos los datos en un estado coherente. En una base de datos
relacional, se deben aplicar todas las reglas a las modificaciones de la transacción para mantener la
integridad de todos los datos. Todas las estructuras internas de datos, como índices de árbol B o listas
doblemente vinculadas, deben estar correctas al final de la transacción.
Aislamiento
Las modificaciones realizadas por transacciones simultáneas se deben aislar de las modificaciones
llevadas a cabo por otras transacciones simultáneas. Una transacción ve los datos en el estado en que
estaban antes de que otra transacción simultánea los modificara o después de que la segunda transacción
se haya concluido, pero no ve un estado intermedio. Esto se conoce como seriabilidad debido a que su
resultado es la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones
para finalizar con los datos en el mismo estado en que estaban después de realizar las transacciones
originales.
Durabilidad
Una vez concluida una transacción, sus efectos son permanentes en el sistema. Las modificaciones
persisten aún en el caso de producirse un error del sistema.
El optimizador
El optimizador es una parte del software que "toma la decisión" de como cada comando se ejecutará,
tanto que la ejecución será lo más eficiente, o por lo menos bastante eficiente (es decir, bastante eficiente
para evitar seguir buscando otra solución, que aún que sea más eficiente, el precio de la búsqueda
adicional "costará" más que el ahorro de recursos).
SQL es un lenguaje declarativo, en el cual el desarrollador declara que quiere extraer o actualizar sin la
necesidad de indicar cómo (a contrario de los lenguajes imperativos, y por lo tanto el optimizador juega
un papel protagónico, que de acuerdo con las estadísticas que el sistema almacena sobre las
distribuciones de los datos en las tablas, los indexes, y reglas internas; toma la decisión adecuada.
A nivel de la base de datos, el usuario se identifica como un User que está relacionado generalmente al
Login (que es a nivel del servidor), y los privilegios al User existen solamente en el ámbito de la base de
datos (además a los privilegios al Login). Para otorgar derechos generales puede asistirse con listas de
Server Roles (roles a nivel del servidor) o Database Roles (roles a nivel de la base de datos específica),
cada cual con privilegios específicos a un rol específico; y cada usuario asociado con uno de estos Roles
obtiene los privilegios asociados con él. Además, el administrador puede otorgar derechos specificos, y
crear otros Database Roles (no se puede crear Server Roles).
Los privilegios a nivel del servidor incluyen la capacidad de crear bases de datos, utilizar las tareas
(Jobs), crear respaldos de bases de datos y restaurarlos, modificar las definiciones del servidor, etc. Los
privilegios a nivel de la base de datos posibilitan extraer y actualizar datos, crear objetos como
procedimientos y tablas, utilizar dichos objetos, etc. Como regla general se puede otorgar derechos
(Grant), revocar privilegios existentes (Revoke), y denegar privilegios aún no existen (Deny).
Respaldos y recuperaciones
Aparte de soluciones de alternativas a nivel del sistema operativo (respaldo de los archivos de la base de
datos), hay una herramienta integrada en el SQL Server que posibilita un respaldo completo o diferencial,
de acuerdo con el modelo de recuperación (Recovery Model) predefinido a la base de datos; y una
recuperación completa o a un punto de tiempo. Aparte de un respaldo de la base de datos se puede
respaldarlos a través de un guion (con o sin los datos). A partir de 2008, se puede comprimir los archivos
de respaldo.
Compresión
A partir de 2008 se añadió la opción de compresión que posibilita comprimir el tamaño físico de las
tablas y los índices, y utilizar más eficientemente el volumen de los discos rígidos y reducir operaciones
de IO (lo que aumenta la carga del CPU). Como ya ha sido mencionado, se puede comprimir también los
archivos de respaldo.
Las copias creadas por estas herramientas, pueden ser utilizadas como un respaldo disponible
inmediatamente en caso de que el sistema falla, tanto como una réplica en un subsistema, independiente
del sistema de origen, para equilibrio de carga; y que las actualizaciones se ejecuten en la base de datos, y
las recuperaciones para los reportajes se ejecuten en la réplica.
Entre dichas herramientas se puede mencionar la replicación que posibilita crear una réplica sincronizada
de la base de datos, el Mirroring que ejecuta en el servidor de espejo cada actualización que se ejecuta en
el servidor de origen, Log Shipping que posibilita almacenar una copia sincronizada a través de archivos
de registro (Log) con todas las actualizaciones en el servidor de origen, y las herramientas de alta
disponibilidad y recuperación de desastres (HADR, desde 2012) que solucionan problemas de Mirroring
en relación con el tiempo de reacción de los fallos técnicos y la disponibilidad de las copias en tiempos
de paz.
Mantenimiento
Con el fin de mejorar el rendimiento del sistema hay que mantener las estadísticas, utilizadas por el
optimizador, organizar los archivos físicos, etc; y se utilizan herramientas dedicadas para estos
propósitos, que se ejecutan periódicamente por tareas programadas, y de una manera coordinada con las
tareas de ETL y de respaldo.
Service Broker
Una tecnología que fue agregada en 2005 que implementa arquitectura orientada a servicios, y que
posibilita ejecuciones asíncronos: primero que nada para enviar mensajes entre distintas aplicaciones que
se ejecutan simultáneamente, pero también para ejecutar procedimientos asíncronamente, en la manera de
dispara y olvida - un procedimiento que se ejecuta en una sesión diferente de la sesión que lo inicio, y
ambos procedimientos siguen ejecutado independientemente uno del otro.
Rastrear
Estas herramientas incluyen el Trace que posibilita rastrear actividades con el fin de mantener cargas y
fallos, y seguridad de datos (recuperación no permitida de datos), el Profiler que posibilita rastrear los
commandos que se ejecutan y los eventos que se ocurren en el servidor, y el Extended Events que fue
agregado en 2008 y cambia el profiler gracias a su baja signatura (la consumición de recursos y la
influencia sobre el rendimiento del servidor).
Aparte de estos, se puede utilizar 2 tipos de Trigers (disparadores) para rastrear los cambios y las
actividades: DML Trigers pre definidos sobre las tablas y las vistas y que se inician por instrucciones de
actualización de datos (Select / Update / Delete), y DDL Triggers que se inician por cambios en los
objetos mismos (y no en los datos), en el nivel de la base de datos o del servidor.
Combinación de CLR
A partir de 2005 se puede combinar fácilmente en SQL Server procedimientos, funciones, y funciones de
agregado desarrolladas en CLR. Hay que desarrollar el código en una de las herramientas de desarrollo
de .NET, crear un archivo DLL, y combinarlo en el sistema. La ventaja de esta tecnología es sus
capacidades en problemas que no son exclusivamente de bases de datos (manipulación de datos), e
incluyen cálculos complejos o manipulaciones textuales de cadenas.
Desventajas
Desde la versión de SQL Server 2012 las consultas escritas en T-SQL no son
retrocompatible con la versión de SQL Server 2008 o anteriores.
En versiones de 32 bits, SQL Server usa Address Windowing Extension (AWE) para hacer
el direccionamiento por encima de 4 GB. Esto le impide usar la administración dinámica de
memoria, y sólo le permite alojar un máximo de 64 GB de memoria compartida. Esta
limitación es exclusiva de sistemas operativos 32 bits; en sistemas operativos 64 bits, la
memoria máxima que se puede direccionar en Edición Estándar es 64 Gb y en Edición
Enterprise 4Tb
Véase también
Base de datos relacional
Sistema de gestión de base de datos
Oracle
Sybase ASE
PostgreSQL
Interbase
Firebird
MySQL
SQL Server Agent
Referencias
4. «Get ready for SQL Server 2017» (https://
1. Guthrie, Scott (7 de marzo de 2016). web.archive.org/web/20170501064911/http
«Announcing SQL Server on Linux» (http
s://www.microsoft.com/en-us/sql-server/sql
s://web.archive.org/web/20160307220521/
-server-2017) (html). Microsoft (en inglés).
https://blogs.microsoft.com/blog/2016/03/0
Archivado desde el original (https://www.mi
7/announcing-sql-server-on-linux/) (html).
crosoft.com/en-us/sql-server/sql-server-20
Microsoft (en inglés). Archivado desde el 17) el 1 de mayo de 2017. Consultado el
original (https://blogs.microsoft.com/blog/2
24 de noviembre de 2018. «Bring the
016/03/07/announcing-sql-server-on-linux/)
industry-leading performance and security
el 7 de marzo de 2016. Consultado el 3 de
of SQL Server to Windows, Linux, and
marzo de 2019.
Docker containers.»
2. Domínguez, Andres Zamora (25 de
5. SQL Server Development History (https://w
octubre de 2017). «Microsoft SQL Server
ww.sqlservergeeks.com/sql-server-develop
can now be run on Linux GNU.» (https://we
ment-history/)
b.archive.org/web/20181124111433/https://
blog.pandorafms.org/microsoft-sql-server/) 6. What's New in Microsoft SQL Server 7 (htt
(html). Pandora FMS (en inglés). Archivado p://technet.microsoft.com/es-es/library/cc9
desde el original (https://blog.pandorafms.o 17537.aspx)
rg/microsoft-sql-server/) el 24 de 7. What's New in Microsoft SQL Server 2000
noviembre de 2018. Consultado el 24 de (http://msdn.microsoft.com/es-es/library/aa
noviembre de 2018. «On December 28, 313021(v=sql.80).aspx)
2016 – feast of the Holy Innocents, that 8. Novedades de SQL Server 2005 (http://ms
special day when Spanish speakers make dn.microsoft.com/es-es/library/ms170363(v
jokes throughout the day – it was =sql.90).aspx)
announced the acquisition of a “Platinum” 9. Novedades (SQL Server 2008) (http://tech
type membership by the company net.microsoft.com/es-es/library/bb500435(v
Microsoft ® in the Linux Foundation and =sql.100).aspx)
the launch of Microsoft SQL Server ®.»
10. What's New in Microsoft SQL Server 2008
3. Lerner, Reuve M. «SQL Server on Linux» R2 (http://msdn.microsoft.com/es-es/librar
(https://web.archive.org/web/20170803211 y/bb500435(v=sql.105).aspx)
904/https://geekguide.linuxjournal.com/cont
11. Novedades de SQL Server 2012 (https://m
ent/sql-server-linux) (html). Geek Guide (en
sdn.microsoft.com/es-es/library/bb500435
inglés). Archivado desde el original (https://
(v=sql.110).aspx)
geekguide.linuxjournal.com/content/sql-ser
ver-linux) el 3 de agosto de 2017. 12. Novedades de SQL Server 2014 (http://ms
Consultado el 24 de noviembre de 2018. dn.microsoft.com/es-es/library/bb500435.a
«But, even the most skeptical open-source spx)
fan must admit that Microsoft has changed 13. Características compatibles con las
during the last few years. It has released ediciones de SQL Server 2014 (http://msd
many developer tools and libraries as open n.microsoft.com/es-es/library/cc645993.as
source, and it has started to include Linux px)
as a supported platform for some of its 14. Connection Strings (http://www.Connection
software.» Strings.com)
Enlaces externos
Página web de Microsoft SQL Server (http://www.microsoft.com/spain/sql/default.mspx)
Microsoft SQL Server Developers (https://www.svrtechnologies.com/sql-server-training)
Libros en pantalla (http://msdn.microsoft.com/en-us/library/ms130214.aspx)
Microsoft SQL Server 2017 (https://www.microsoft.com/en-us/sql-server/sql-server-2017)
Revista de bases de datos Database Journal (en inglés) (http://www.databasejournal.com/f
eatures/article.php/3593466/MS-SQL-Series.htm)
Página de descarga de Microsoft SQL Server 2012 (http://technet.microsoft.com/es-ar/evalc
enter/hh225126.aspx?wt.mc_id=TEC_93_1_8&ocid=src-n-latam-jtc--SKI)
Obtenido de «https://es.wikipedia.org/w/index.php?title=Microsoft_SQL_Server&oldid=123571870»
Esta página se editó por última vez el 16 feb 2020 a las 02:16.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse
cláusulas adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.