Mejoras de programación (motor de base de datos)
Las mejoras de programación del Motor de base de datos incluyen FileTables, búsqueda semántica estadística, búsqueda de texto completo referente a propiedades y búsqueda de proximidad personalizable, paginación de consultas ad-hoc, compatibilidad de segmentos de arco circular para tipos espaciales, compatibilidad con objetos de secuencia, compatibilidad predeterminada con 15.000 particiones, así como numerosas mejoras y adiciones a Transact-SQL.
Los servicios web XML nativos (extremos SOAP/HTTP) se han quitado
A partir de SQL Server 2012, ya no podrá usar CREATE ENDPOINT o ALTER ENDPOINT para agregar o modificar extremos HTTP/SOAP.
FileTables
La característica FileTable se basa en la tecnología FILESTREAM de SQL Server para proporcionar compatibilidad con el espacio de nombres de archivo de Windows y con las aplicaciones Windows para los datos de archivo almacenados en SQL Server. De esta forma, una aplicación puede integrar sus componentes de administración de datos y almacenamiento, así como proporcionar servicios de SQL Server integrados (incluidas la búsqueda de texto completo y la búsqueda semántica) en datos y metadatos no estructurados, junto con una sencilla administración de directivas.
En resumen, ahora puede almacenar archivos y documentos en tablas especiales de SQL Server y acceder a ellos desde las aplicaciones Windows como si estuviesen almacenados en el sistema de archivos, sin efectuar cambios en dichas aplicaciones.
Para obtener más información sobre las características de FileTable, vea FileTables (SQL Server).
Búsqueda semántica estadística
La búsqueda semántica estadística proporciona una visión general amplia de los documentos no estructurados almacenados en las bases de datos de SQL Server mediante la extracción de frases clave estadísticamente relevantes y, a continuación, la identificación de documentos similares basándose en esas frases. Estos resultados se ponen a disposición de los usuarios como datos estructurados a través de tres funciones de conjuntos de filas de Transact-SQL.
La búsqueda semántica se basa en la características de búsqueda de texto completo existente de SQL Server, pero habilita nuevos escenarios que van más allá de las búsquedas sintácticas de palabras clave. Mientras que la búsqueda de texto completo permite consultar las palabras de un documento, la búsqueda semántica permite consultar el significado del documento. Los nuevos escenarios incluyen la extracción automática de etiquetas, la detección de contenido relacionado y la navegación jerárquica en contenido similar. Por ejemplo, puede consultar el índice de similitud de documentos para identificar currículos que coincidan con la descripción de un trabajo. O bien, puede consultar el índice de frases clave para compilar la taxonomía de una organización o un corpus de documentos.
Para obtener más información, vea Búsqueda semántica (SQL Server).
Para poder utilizar la búsqueda semántica, debe instalar, adjuntar y registrar una base de datos adicional. Para obtener más información, vea Instalar y configurar la búsqueda semántica.
Búsqueda de texto completo
Búsqueda de propiedades
A partir de SQL Server 2012, puede configurar un índice de texto completo para que admita la búsqueda referente propiedades en las propiedades, como Autor y Título, que emiten los IFilters. Esta forma de búsqueda se denomina búsqueda de propiedades. Si la búsqueda de propiedades es posible en un tipo de documento dado depende de si el filtro (IFilter) correspondiente extrae las propiedades de búsqueda durante la indización de texto completo. Entre los IFilters que extraen muchas propiedades del documento se encuentran los IFilters para los tipos de archivo de documentos de Microsoft Office 2007, por ejemplo, .docx, .xlsx y .pptx. Para obtener más información, vea Buscar propiedades de documento con listas de propiedades de búsqueda.
NEAR personalizable
A partir de SQL Server 2012, puede personalizar una búsqueda de proximidad mediante la nueva opción NEAR personalizada del predicado CONTAINS o de la función CONTAINSTABLE. El predicado NEAR personalizado le permite especificar opcionalmente el número máximo de términos de no búsqueda que separan el primero término de búsqueda y el último en una coincidencia. Asimismo este predicado le permite especificar opcionalmente que las palabras y frases se comparen solo si se encuentran en el orden especificado. Para obtener más información, vea Buscar palabras cerca de otra palabra con NEAR.
Nuevos separadores de palabras y lematizadores
En esta versión se actualizan todos los separadores de palabras y lematizadores utilizados por la búsqueda de texto completo y la búsqueda semántica, salvo el idioma coreano. Para que haya coherencia entre el contenido de los índices y los resultados de las consultas, se recomienda que vuelva a rellenar los índices de texto completo existentes tras la actualización.
Se han reemplazado los separadores de palabras de terceros para inglés que se incluían en versiones anteriores de SQL Server con componentes de Microsoft. Si tiene que conservar el comportamiento anterior, vea Cambiar el separador de palabras usado para el inglés de Estados Unidos y el del Reino Unido.
Se han reemplazado los separadores de palabras de terceros para danés, polaco y turco que se incluían en versiones anteriores de SQL Server con componentes de Microsoft. Los componentes nuevos están habilitados de forma predeterminada.
Existen nuevos separadores de palabras para checo y griego. Las versiones anteriores de búsqueda de texto completo de SQL Server no incluían compatibilidad con estos dos idiomas.
El comportamiento de los nuevos separadores de palabras ha cambiado. Para obtener más información, vea Cambios de comportamiento en la búsqueda de texto completo. Si tiene que conservar el comportamiento anterior, vea Revertir los separadores de palabras usados por las búsquedas a la versión anterior.
Esta versión instala los separadores de palabras y analizadores lingüísticos de Microsoft más recientes, pero no instala los filtros más recientes de Microsoft. Para descargar los filtros más recientes, vea Paquetes de filtros de Microsoft Office 2010.
Características espaciales nuevas y mejoradas
Las nuevas características espaciales de SQL Server 2012 representan un hito importante de la evolución de la compatibilidad de datos espaciales en SQL Server. La compatibilidad con los objetos espaciales del globo terráqueo y los arcos circulares del elipsoide son primicias en el sector para los sistemas de bases de datos relacionales. El tipo de datos geography ha alcanzado la paridad con el tipo de datos geometry en la funcionalidad y la variedad de métodos que admite. El rendimiento global, desde los índices espaciales hasta los métodos, ha mejorado significativamente. Estas y otras mejoras en la compatibilidad de los datos espaciales representan un paso adelante muy importante en las funciones espaciales de SQL Server.
Para obtener una descripción detallada y ejemplos de estas nuevas características espaciales, descargue las notas de producto Nuevas características espaciales de SQL 2012.
Mejoras en los tipos de datos espaciales
Nuevos arcos circulares y métodos relacionados
Nuevos subtipos. Hay 3 nuevos subtipos de arcos circulares:
CircularString
CompoundCurve
CurvePolygon
Nuevos métodos. Todos los métodos existentes funcionan en estos objetos circulares. También se introducen los nuevos métodos siguientes:
BufferWithCurves () utiliza arcos circulares para crear un objeto almacenado en búfer con un número de puntos muy reducido en comparación con STBuffer ().
STNumCurves() y STCurveN() se utilizan para la iteración en la lista de los bordes de arco circulares.
STCurveToLine() y CurveToLineWithTolerance() se utilizan para la aproximación de arcos circulares con segmentos lineales dentro de la tolerancia predeterminada y especificada por el usuario.
Métodos y agregados nuevos y actualizados para geometry y geography
Nuevos métodos.
IsValidDetailed() devuelve un mensaje que puede ayudar a identificar por qué un objeto espacial no es válido.
HasZ devuelve 1 (true) si un objeto espacial contiene al menos un valor Z.
HasM devuelve 1 (true) si un objeto espacial contiene al menos un valor M.
AsBinaryZM() agrega compatibilidad con valores Z y M al formato WKB de OGC.
ShortestLineTo() devuelve un elemento LineString que representa la distancia más corta entre dos objetos.
STLength() se ha actualizado y ahora funciona en elementos LineString válidos y no válidos.
MinDbCompatibilityLevel() es un nuevo método que se utiliza para la compatibilidad con versiones anteriores. Indica si los objetos espaciales pueden ser reconocidos por SQL Server 2008 y SQL Server 2008 R2.
Nuevos agregados. Estoss agregados solo están disponibles en Transact-SQL y no en la biblioteca de programación del lado cliente.
UnionAggregate
EnvelopeAggregate
CollectionAggregate
ConvexHullAggregate
Precisión mejorada.
Todas las construcciones y relaciones se realizan ahora con 48 bits de precisión, en comparación con los 27 bits utilizados en SQL Server 2008 y SQL Server 2008 R2. Esto puede reducir los errores causados por el redondeo de las coordenadas de coma flotante.
Mejoras del tipo geography
Globo completo. SQL Server admite ahora los objetos espaciales mayores que un hemisferio lógico. Las características de geography se han limitado a algo menos que un hemisferio lógico en SQL Server 2008. En SQL Server 2012, ahora pueden ser tan grandes como todo el globo. Un nuevo tipo de objeto, denominado FULLGLOBE, se puede crear o recibir como resultado de una operación.
Nuevos métodos.
Para los objetos no válidos. El tipo geography permite ahora que objetos no válidos se inserten en una tabla. STIsValid() y MakeValid() permiten la detección y corrección de objetos geography no válidos de forma similar al tipo geometry.
Para la orientación de anillo. Los polígonos de geography pueden incluirse ahora con independencia de la orientación de anillo. Esto puede dar lugar a un comportamiento no deseado. ReorientObject() se puede utilizar para reorientar los anillos de polígono en los casos en que se crean con una orientación incorrecta.
Métodos de geometry agregados para el tipo geography. Los métodosSTWithin(), STContains(), STOverlaps() y STConvexHull() estaban disponibles anteriormente solo para el tipo geometry, pero ahora se han agregado para el tipo geography. Con la excepción de STConvexHull(), estos nuevos métodos son compatibles con los índices espaciales.
Nuevo SRID. Un nuevo identificador de referencia espacial (SRID), 104001, se ha agregado a la lista de sistemas de referencia espacial admitidos. Este nuevo SRID es una esfera de unidad terrestre (esfera de radio 1) y se puede utilizar con el tipo geography para realizar cálculos numéricos optimizados cuando no se necesiten cálculos matemáticos elípticos más precisos.
Mejoras del rendimiento espacial
Mejoras del índice espacial
Nueva cuadrícula automática. Un nuevo índice espacial de cuadrícula automática está disponible para ambos tipos espaciales (geometry_auto_grid y geography_auto_grid). La nueva cuadrícula automática utiliza una estrategia diferente para elegir el equilibrio adecuado entre rendimiento y eficacia. Para obtener más información, vea CREATE SPATIAL INDEX (Transact-SQL).
Nueva sugerencia de índice espacial, SPATIAL_WINDOW_MAX_CELLS. Esta nueva sugerencia espacial es fundamental para optimizar el rendimiento de las consultas utilizando un índice espacial. Los datos espaciales densos requieren a menudo un SPATIAL_WINDOW_MAX_CELLS superior, mientras que los datos espaciales dispersos exigen a menudo un SPATIAL_WINDOW_MAX_CELLS inferior para que el rendimiento sea óptimo. Esta sugerencia no garantiza la utilización de un índice espacial en el plan de consultas. Sin embargo, si se utiliza, esta sugerencia invalidará el parámetro predeterminado WINDOW_MAX_CELLS.
Compresión de los índices espaciales. Para obtener más información, vea CREATE SPATIAL INDEX (Transact-SQL).
Mejoras adicionales del rendimiento
Un plan de consultas de vecino más cercano optimizado está disponible cuando se utiliza determinada sintaxis.
Algunos otros métodos se han optimizado para los escenarios comunes.
Los agregados espaciales tienen un mejor rendimiento como consecuencia de las mejoras que afectan a todos los agregados CLR UDT.
Otras mejoras espaciales
Procedimientos almacenados auxiliares espaciales
Dos nuevos procedimientos almacenados auxiliares están disponibles. Estos procedimientos se pueden utilizar para evaluar la distribución de los datos espaciales dentro de una tabla en una columna espacial determinada.
Compatibilidad con columnas calculadas persistentes
Los UDT y los tipos espaciales se pueden conservar ahora en columnas calculadas.
Cambios en la biblioteca de programación espacial del lado cliente
Están disponibles nuevas interfaces de receptor, IGeometrySink110 y IGeographySink110.
Los generadores de geometry y geography (SqlGeometryBuilder y SqlGeographyBuilder) admiten ahora construcciones de arco circulares.
Se ha agregado un nuevo método, Deserialize, a ambos tipos (Deserialize(SqlBytes) y Deserialize(SqlBytes)). Este método simplifica la deserialización.
Detección de metadatos
La opción SET FMTONLY para determinar el formato de una respuesta sin ejecutar realmente la consulta se reemplaza por sp_describe_first_result_set, sp_describe_undeclared_parameters, sys.dm_exec_describe_first_result_set y sys.dm_exec_describe_first_result_set_for_object.
Instrucción EXECUTE
La instrucción EXECUTE ahora puede especificar los metadatos devueltos desde la instrucción con el argumento WITH RESULT SETS. Para obtener más información, vea EXECUTE (Transact-SQL).
Compatibilidad con UTF-16
Intercalaciones de caracteres suplementarios (SC) UTF-16
Se puede usar una nueva familia de intercalaciones de caracteres suplementarios (SC) con los tipos de datos nchar, nvarchar y sql_variant. Por ejemplo: Latin1_General_100_CI_AS_SC o, si se usa una intercalación japonesa, Japanese_Bushu_Kakusu_100_CI_AS_SC. Estas intercalaciones codifican los caracteres Unicode en el formato UTF-16. Los caracteres con valores de punto de código mayores que 0xFFFF requieren dos palabras de 16 bits consecutivas. Estos caracteres se denominan caracteres suplementarios y las dos palabras de 16 bits consecutivas, pares suplentes. Las intercalaciones de SC pueden mejorar la búsqueda y la ordenación por funciones que usan los tipos Unicode nchar y nvarchar. Para obtener más información, vea Compatibilidad con la intercalación y Unicode.
Opción de intercalación de caracteres suplementarios (SC) UTF-16 para XML
SQL Server 2012 agrega una nueva opción de intercalación – "SC", o "caracteres complementarios", que identifica si una intercalación conoce UTF-16. Para obtener más información, vea Compatibilidad con la intercalación y Unicode. SQL Server 2012 también agrega compatibilidad con esta opción de intercalación en el esquema XML de tipos SQL y en otras ubicaciones donde SQL Server expone o utiliza esta información en un contexto XML. Las ubicaciones afectadas son las siguientes:
Esquema XML de tipos SQL. La versión de esquema es ahora la 1.2. El esquema es compatible con las versiones anteriores y el espacio de nombres de destino no ha cambiado. El esquema ahora expone el atributo global supplementaryCharacters.
Directiva XMLSCHEMA con FOR XML. El nuevo atributo global se expone en las anotaciones y los esquemas insertados generados por la directiva XMLSCHEMA, junto con atributos similares como localeId y sqlCompareOptions. Esta directiva se admite con FOR XML en los modos RAW y AUTO, pero no en los modos EXPLICIT o PATH.
Colección de esquemas XML sys.sys. El nuevo atributo global se rellena de antemano en la colección de esquemas XML integrada sys.sys y está disponible implícitamente en las demás colecciones de esquemas XML que importan el esquema XML de tipos SQL.
Vistas de catálogo El nuevo atributo global se muestra ahora en las vistas de catálogo siguientes:
sys.xml_schema_components
sys.xml_schema_attributes
sys.xml_schema_component_placements
Colecciones de esquemas XML actualizadas. Tras actualizar una versión anterior de SQL Server, el nuevo atributo global se expone en todas las colecciones de esquemas XML que importan el esquema XML de tipos SQL.
Conjuntos de columnas XML. El nuevo atributo global se agrega a los valores de los juegos de columnas XML que representan las cadenas sql_variant que usan las nuevas intercalaciones UTF-16. También puede aplicarse durante las inserciones y las actualizaciones para establecer valores de cadena de tipo sql_variant en columnas dispersas para utilizar la intercalación con UTF-16.
Implementación de la paginación de consultas ad-hoc
Puede especificar un intervalo de filas devuelto por una instrucción SELECT basada en los valores de desplazamiento de fila y de recuento de filas que proporcione. Esto es útil cuando desee controlar el número de filas enviadas a una aplicación cliente para una consulta dada. Para obtener más información, vea ORDER BY (cláusula de Transact-SQL).
Objetos de secuencia
Un objeto de secuencia es un objeto enlazado a un esquema definido por el usuario que genera una secuencia de valores numéricos según la especificación con la que se creó la secuencia. Funciona de forma similar a una columna de identidad, pero los números de la secuencia no se restringen a su uso en una sola tabla. Para obtener más información, vea Números de secuencia.
Instrucción THROW
La instrucción THROW se puede utilizar para generar una excepción y transferir la ejecución a un bloque CATCH o a una construcción TRY…CATCH. Para obtener más información, vea THROW (Transact-SQL).
Catorce características nuevas y una función cambiada
SQL Server 2012 incluye catorce nuevas funciones integradas. Estas funciones facilitan la ruta de migración para los trabajadores de la información emulando la funcionalidad que se encuentra en los idiomas de expresiones de muchas aplicaciones de escritorio. Aunque estas funciones también son útiles para los usuarios con experiencia de SQL Server.
Las nuevas funciones son:
Funciones de conversión
Funciones de fecha y hora
Funciones lógicas
Funciones de cadena
Además de las catorce nuevas funciones, se ha cambiado una función existente. La función LOG (Transact-SQL) existente tiene ahora un segundo parámetro opcional base.
SQL Server Express LocalDB
SQL Server Express LocalDB es una nueva edición más liviana de Express que tiene todas sus características de capacidad de programación, se ejecuta en modo usuario, tiene una instalación rápida sin configuración y una lista reducida de requisitos previos. La edición LocalDB de SQL Server está pensada para los desarrolladores de programas. La instalación de LocalDB copia un conjunto de archivos mínimo necesario para iniciar el Motor de base de datos de SQL Server. Una vez que LocalDB está instalado, los desarrolladores inician una conexión mediante una cadena de conexión especial. Cuando se realiza la conexión, se crea y se inicia automáticamente la infraestructura de SQL Server necesaria, permitiendo que la aplicación use la base de datos sin tareas de configuración complejas o prolongadas en el tiempo. Las herramientas de desarrollo pueden proporcionar a los desarrolladores de software un Motor de base de datos de SQL Server que les permite escribir y probar el código de Transact-SQL sin tener que administrar una instancia de servidor completa de SQL Server. Una instancia de SQL Server Express LocalDB se puede administrar mediante la utilidad SqlLocalDB.exe. SQL Server Express LocalDB se debe usar en lugar de la característica de instancias de usuario de SQL Server Express, que ha quedado en desuso. Para obtener más información, vea SQL Server 2012 Express LocalDB.
Sugerencias nuevas y mejoradas del optimizador de consultas
La sintaxis de la sugerencia de tabla FORCESEEK se ha modificado. Ahora puede especificar un índice y columnas de índice para controlar aún más el método de acceso con el índice. La sintaxis existente de FORCESEEK permanece sin modificar y funciona como antes. No será necesario realizar cambios en las aplicaciones si no tiene previsto usar la nueva funcionalidad.
Se ha agregado la sugerencia de tabla FORCESCAN. Complementa a la sugerencia FORCESEEK especificando que el optimizador de consultas solo usa una operación de examen de índice como ruta de acceso a la tabla o la vista a la que se hace referencia en la consulta. La sugerencia FORCESCAN puede ser útil para consultas en las que el optimizador subestima el número de filas afectadas y elige una operación de búsqueda en lugar de una operación de examen. FORCESCAN se puede especificar con o sin una sugerencia INDEX. Para obtener más información, vea Sugerencias de tabla (Transact-SQL).
Mejoras en los eventos extendidos
Se dispone de los siguientes nuevos eventos extendidos.
page_allocated:
- Campos: worker_address, number_pages, page_size, page_location, allocator_type, page_allocator_type, pool_id
page_freed:
- Campos: worker_address, number_pages, page_size, page_location, allocator_type, page_allocator_type, pool_id
allocation_failure:
- Campos: worker_address, failure_type, allocation_failure_type, resource_size, pool_id, factor
Se han modificado los eventos extendidos siguientes.
resource_monitor_ring_buffer_record:
Campos que se han quitado: single_pages_kb, multiple_pages_kb
Campos agregados: target_kb, pages_kb
memory_node_oom_ring_buffer_recorded:
Campos que se han quitado: single_pages_kb, multiple_pages_kb
Campos agregados: target_kb, pages_kb
Compatibilidad mejorada con la cláusula OVER
La cláusula OVER se ha extendido para admitir funciones de ventana. Funciones de ventana realizan un cálculo a través de un conjunto de filas que se encuentran en alguna relación con la fila actual. Por ejemplo, puede utilizar la cláusula ROWS o RANGE sobre un conjunto de filas para calcular un promedio móvil o un total acumulado. Para obtener más información, vea OVER (cláusula de Transact-SQL).
Además, ahora se puede ordenar las filas dentro de una partición en las funciones de agregado que permiten que se especifique la cláusula OVER.
Funciones analíticas
Se han agregado las funciones analíticas siguientes.
Las funciones XQuery detectan los caracteres suplentes
La recomendación de W3C para las funciones y los operadores de XQuery requiere contar un par suplente que represente un carácter Unicode de nivel alto como un solo glifo en codificación UTF-16. No obstante, en versiones de SQL Server anteriores a SQL Server 2012, las funciones de cadena no reconocían los pares suplentes como un solo carácter. Algunas operaciones de cadena, como los cálculos de longitud de cadena y las extracciones de subcadenas, devolvían resultados incorrectos. SQL Server 2012 ahora es completamente compatible con UTF-16 y permite la administración correcta de los pares suplentes. Para obtener más información, vea la sección "Las funciones de XQuery detectan los caracteres suplentes" en el tema Cambios recientes en las características del Motor de base de datos de SQL Server 2012.