Mejoras de programación (motor de base de datos)

Nota

En SQL Server 2008 R2 no ha habido ningún cambio en el contenido que se mencione en este tema.

Entre las mejoras de la capacidad de programación en Motor de base de datos se incluyen nuevas características de almacenamiento de datos, nuevos tipos de datos, nueva arquitectura de la búsqueda de texto completo, y numerosas mejoras e incorporaciones a Transact-SQL.

Almacenamiento de datos

Almacenamiento comprimido de tablas e índices

SQL Server 2008 admite la compresión de almacenamiento en disco tanto en formato de dilas como de páginas para tablas, índices y vistas indizadas. La compresión de tablas e índices con particiones se puede configurar independientemente para cada partición. Para obtener más información, vea Crear tablas e índices comprimidos.

Almacenamiento de FILESTREAM

El almacenamiento FILESTREAM habilita a las aplicaciones de SQL Server para almacenar datos no estructurados, tales como documentos e imágenes, en el sistema de archivos. Esto permite a las aplicaciones cliente utilizar las API de transmisión por secuencias enriquecidas y el rendimiento del sistema de archivos al mismo tiempo que mantienen la coherencia transaccional entre los datos no estructurados y los datos estructurados correspondientes. Para obtener más información, vea Diseñar e implementar almacenamiento FILESTREAM.

Nuevas intercalaciones

SQL Server 2008 presenta nuevas intercalaciones que se ajustan totalmente con las proporcionadas por Windows Server 2008. Estas 80 nuevas intercalaciones se indican mediante referencias a la versión *_100. Estas intercalaciones proporcionan a los usuarios las convenciones de ordenación culturales más actualizadas y lingüísticamente precisas. Para obtener más información, vea Compatibilidad con la intercalación y Unicode y Trabajar con intercalaciones.

Conmutación de la partición en tablas e índices con particiones

La partición de datos permite administrar y tener acceso a subconjuntos de los datos de forma rápida y eficaz, a la vez que mantiene la integridad de la totalidad de la recopilación de datos. Ahora puede utilizar la conmutación de partición para transferir rápida y eficazmente subconjuntos de datos conmutando una partición de una tabla a otra.

Para obtener información sobre los conceptos de conmutación de particiones y para ver ejemplos de código que implementa la conmutación de particiones, vea Transferir datos de forma eficaz con cambios de particiones y Conmutar particiones al definir vistas indizadas.

Columnas dispersas y conjuntos de columnas

Las columnas dispersas son columnas normales que disponen de un formato de almacenamiento optimizado para los valores NULL. Considere la posibilidad de usar este tipo de columnas si al menos del 20 al 40 por ciento de los valores de una columna serán NULL. Para obtener más información, vea Usar columnas dispersas.

Las tablas que usan columnas dispersas pueden designar un conjunto de columnas para devolver todas las columnas dispersas de la tabla. Un conjunto de columnas es una representación XML sin tipo que combina todas las columnas dispersas de una tabla en una salida estructurada. Para obtener más información, vea Utilizar conjuntos de columnas.

Almacenamiento métodos e indización de datos espaciales

Los datos espaciales representan información sobre la ubicación física y forma de objetos geométricos. Estos objetos pueden ser ubicaciones de punto u objetos más complejos como países, carreteras o lagos.

Para obtener más información, vea Trabajar con datos espaciales (motor de base de datos), Referencia de los métodos del tipo de datos geometry y Referencia de los métodos del tipo de datos geography.

Los índices espaciales mejoran la eficacia de ciertas operaciones orientadas a conjuntos en los objetos espaciales (datos espaciales). Un índice espacial reduce el número de objetos a los que es necesario aplicar las operaciones espaciales, que son relativamente costosas. Para obtener más información, vea Trabajar con índices espaciales (motor de base de datos).

Tablas anchas

Las tablas anchas son tablas que contienen uno o más conjuntos de columnas. Una tabla ancha puede contener hasta 30000 columnas, 1000 índices y 30000 estadísticas. Para obtener más información, vea Tipos de tablas especiales.

Tipos de datos

Tipos de datos de fecha y hora

SQL Server 2008 introduce cuatro nuevos tipos de datos de fecha y hora. Estos tipos permiten a las aplicaciones tener tipos independientes para la fecha y la hora, un mayor intervalo de años, mayor precisión en las fracciones de segundo, y compatibilidad para desplazamiento de zona horaria. Para obtener más información, vea Usar datos de fecha y hora.

Tipo de datos hierarchyid

SQL Server 2008 presenta un nuevo tipo de datos proporcionado por sistema para encapsular relaciones jerárquicas. Use hierarchyid como un tipo de datos para crear tablas con una estructura jerárquica o para hacer referencia a la estructura jerárquica de datos de otra ubicación. Utilice métodos jerárquicos para consultar y trabajar con datos jerárquicos usando Transact-SQL.

Algunos ejemplos donde el tipo hierarchyid facilita el almacenamiento y la consulta de datos jerárquicos son los siguientes:

  • Una estructura organizativa

  • Un sistema de archivos

  • Un conjunto de tareas de un proyecto

  • Una taxonomía de términos de idioma

  • Un gráfico de vínculos entre páginas web

El tipo de datos CLR SqlHierarchyId está disponible para las aplicaciones cliente. Para obtener más información, vea Usar los tipos de datos hierarchyid (motor de base de datos).

Tipos de datos espaciales

SQL Server 2008 presenta dos tipos de datos espaciales: geometry y geography. El tipo de datos geometry admite datos planos o euclidianos (de tierra plana). El tipo de datos geography almacena datos elípticos (tierra redonda), como las coordenadas de latitud y longitud del sistema GPS. Estos nuevos tipos de datos permiten el almacenamiento y manipulación de objetos de datos espaciales como cadenas de líneas, puntos y polígonos. Para obtener más información, vea Trabajar con datos espaciales (motor de base de datos).

Tipo de tabla definida por el usuario

Motor de base de datos presenta un nuevo tipo de tabla definido por el usuario que permite representar estructuras de tabla para usarlas como parámetros en procedimientos almacenados y funciones, en un lote o en el cuerpo de un procedimiento almacenado o función. Puede crear restricciones UNIQUE y claves principales en tipos de tabla definidos por el usuario.

Para obtener más información, vea Tipos definidos por el usuario.

Tipos definidos por el usuario (UDT)

El tamaño máximo de un UDT se ha aumentado a 2147483647 bytes.

Búsqueda de texto completo

La búsqueda de texto completo de SQL Server 2008 Enterprise presenta una nueva arquitectura de texto completo. La búsqueda de texto completo es ahora una característica totalmente integrada de una base de datos. Como resultado, la búsqueda de texto completo ha mejorado significativamente en las áreas siguientes:

  • Los catálogos de texto completo se integran en la base de datos, en lugar de almacenarse en el sistema de archivos, de modo que al mover una base de datos ahora se muevan ahora automáticamente los catálogos de texto completo.

  • En esta versión, sigue vigente el concepto de palabras irrelevantes de SQL Server 2005. Un nuevo conjunto de objetos de lista de palabras irrelevantes administra la Configuración de palabras irrelevantes. Estos objetos están asociados con la base de datos y se mueven con ella. Esto mantiene la configuración de palabras irrelevantes intacta durante las operaciones de administración tales como la copia de seguridad y la restauración, la conexión y desconexión, y la copia de una base de datos con el Asistente para copiar bases de datos. Para obtener más información, vea Palabras irrelevantes y listas de palabras irrelevantes.

  • El rendimiento de consulta e indización se mejorado radicalmente en algunos escenarios concretos, como resultado de la integración con otros componentes de consulta importantes tales como el optimizador de consultas. Para obtener más información, vea Ajuste y optimización del rendimiento de los índices de texto completo.

  • Nuevas herramientas ayudan a entender el contenido sin formato de un índice de texto completo, así como el comportamiento de un separador de palabras concreto en un término o frase concretos de una consulta dada. Para obtener más información, vea sys.dm_fts_index_keywords (Transact-SQL), sys.dm_fts_index_keywords_by_document (Transact-SQL) y sys.dm_fts_parser (Transact-SQL). Éstas vistas de administración dinámica, estos procedimientos almacenados y otros facilitan la solución de problemas de búsqueda de texto completo. Para obtener información acerca de estos recursos de solución de problemas, vea Solucionar problemas en la búsqueda de texto.

  • Una nueva familia de separadores de palabras mejora la exactitud de la separación de palabras y extiende el conjunto de idiomas disponibles para la búsqueda de texto completo. Para obtener más información, vea Separadores de palabras y lematizadores.

Para obtener más información, vea Cambios de comportamiento en la búsqueda de texto completo de SQL Server 2008 R2, Características de la búsqueda de texto completo obsoletas en SQL Server 2008, Principales cambios en la búsqueda de texto completo de SQL Server 2008 R2 y Arquitectura de la búsqueda de texto.

Transact-SQL

Nivel de compatibilidad

ALTER DATABASE SET COMPATIBILITY_LEVEL reemplaza sp_dbcmptlevel para establecer el nivel de compatibilidad de la base de datos. Para obtener más información, vea Nivel de compatibilidad de ALTER DATABASE (Transact-SQL).

Operadores compuestos

Están disponibles operadores que realizan una operación y establecen una variable en el resultado, por ejemplo SET @x += 2. Para obtener más información, vea Operadores compuestos (Transact-SQL).

Función CONVERT

La función CONVERT se ha mejorado para permitir las conversiones entre valores binarios y caracteres hexadecimales. Para obtener más información, vea CAST y CONVERT (Transact-SQL).

Funcionalidad de fecha y hora

SQL Server 2008 incluye soporte para el sistema de semana-fecha ISO. Para obtener más información, vea DATEPART (Transact-SQL).

GROUPING SETS

Se ha agregado los operadores GROUPING SETS, ROLLUP y CUBE a la cláusula GROUP BY. Hay una nueva función, GROUPING_ID() que devuelve más información de nivel de agrupación que la función GROUPING() existente. La sintaxis WITH ROLLUP, WITH CUBE y ALL, que no se ajusta a ISO, es obsoleta. Para obtener más información, vea Utilizar GROUP BY con ROLLUP, CUBE y GROUPING SETS.

Instrucción MERGE

Esta nueva instrucción Transact-SQL realiza operaciones INSERT, UPDATE o DELETE en una tabla de destino en función de los resultados de una unión con una tabla de origen. La sintaxis permite combinar un origen de datos con una tabla o vista de destino y, a continuación, realizar varias acciones basadas en los resultados de esa combinación. Para obtener más información, vea MERGE (Transact-SQL).

Crear informes de dependencias SQL

SQL Server 2008 presenta una nueva vista de catálogo y funciones del sistema para proporcionar informes de dependencia SQL coherentes y confiables. Puede utilizar sys.sql_expression_dependencies, sys.dm_sql_referencing_entities y sys.dm_sql_referenced_entities para crear informes sobre servidores, bases de datos y dependencias SQL de bases de datos, tanto para objetos enlazados a esquema como no enlazados a esquema. Para obtener más información, vea Creación de informes de dependencias SQL.

Parámetros con valores de tabla

Motor de base de datos presenta un nuevo tipo de parámetro que puede hacer referencia a tipos de tabla definidos por el usuario. Los parámetros con valores de tabla pueden enviar múltiples filas de datos a una instrucción o rutina de SQL Server (tal como un procedimiento almacenado o una función) sin crear una tabla temporal. Para obtener más información, vea Parámetros de valores de tabla (motor de base de datos).

Constructores de filas de Transact-SQL

Transact-SQL se ha mejorado para permitir varias inserciones de valor dentro de una instrucción INSERT única. Para obtener más información, vea INSERT (Transact-SQL).

Vea también

Conceptos