INF: Preguntas más frecuentes - SQL Server 2000: las Variables de tabla

Seleccione idioma Seleccione idioma
Id. de artículo: 305977 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

En este artículo se responde algunas de las preguntas más frecuentes (P+f) relacionadas con las variables de tabla que se presentan en SQL Server 2000.

Para leer la descripción de libros en pantalla de SQL Server de la tabla variables, visite el siguiente sitio Web de Microsoft:
http://msdn2.Microsoft.com/en-us/library/aa260638 (SQL.80) .aspx

Más información

Trimestre 1: ¿Por qué las variables table introducidas cuando las tablas temporales ya estaban disponibles?

A1: Las variables de tabla tienen las siguientes ventajas sobre temporal tablas:
  • Como se mencionó en SQL Server Books Online "Tablas" artículo, las variables de tabla, tales como las variables locales, tienen un alcance bien definido en el al final de los cuales se borran automáticamente.
  • Las variables de tabla como resultado menos recompilaciones de un procedimiento procedimiento con respecto a las tablas temporales.
  • Las transacciones que implican variables table sólo para el duración de una actualización en la variable de tabla. Por lo tanto, las variables table requieren menos de bloqueo y el registro de recursos. Dado que las variables de tabla dispone de un alcance limitado y no forman parte de la base de datos, transacciones deshechas no les afectan.
P2: ¿Qué significa diciendo que las variables de tabla como resultado menos recompilaciones de un procedimiento almacenado que cuando se utilizan tablas temporales?

A2: El siguiente artículo describe algunas de las razones cuando se almacenan se vuelven a compilar procedimientos:

243586 Solución de problemas de recompilación del procedimiento almacenado
"Recompilaciones debido a ciertas tabla temporal Sección de operaciones"muestran también algunos requisitos para evitar tales como un volver a compilar debido a las tablas temporales. Estas restricciones no se aplican a variables de tabla.

Las variables de tabla están completamente aisladas del lote que no crea por lo que está resolución ' tiene que producirse cuando un CREATE o ALTER instrucción tiene lugar, lo que puede producirse con una tabla temporal. Tablas temporales necesita esta resolución está ' almacenado anidado por lo que puede hacer referencia a la tabla de procedimiento. Las variables table evitan completamente por lo que pueden utilizar procedimientos almacenados plan que ya está compilada, ahorrando recursos para procesar la suma de comprobación procedimiento.

Trimestre 3: ¿Cuáles son algunos de los inconvenientes de las variables de tabla?

A3: Éstas son algunas de las desventajas en comparación con las tablas temporales:
  • No se puede crear índices no agrupados en las variables de tabla distintos de los índices de sistema que se crean para un principal o UNIQUE restricción. Que puede influir en el rendimiento de las consultas en comparación con un tabla temporal con índices no agrupados.
  • Las variables table no se mantienen estadísticas como temporal tablas pueden. No se puede crear estadísticas en las variables de tabla a través de automático Creación o mediante la instrucción CREATE STATISTICS. Por lo tanto, para el complejo las consultas en tablas grandes, la falta de estadísticas puede disuadir el optimizador de determinar el mejor plan para una consulta, lo que afecta el rendimiento de la consulta.
  • La definición de tabla no se puede cambiar después de la inicial DECLARE (instrucción).
  • No se puede utilizar variables de tablas en un INSERT EXEC o seleccione EN la declaración.
  • Compruebe las restricciones, valores predeterminados y las columnas calculadas en la declaración de tipo de tabla no puede llamar a funciones definidas por el usuario.
  • No se puede utilizar la instrucción EXEC o procedimiento almacenado sp_executesql para ejecutar una consulta dinámica de SQL Server que hace referencia a variable de tabla, si se ha creado la variable de tabla fuera de la instrucción EXEC o el sp_executesql procedimiento almacenado. Dado que pueden hacer referencia a las variables de tabla en su ámbito local sólo una instrucción EXEC y un procedimiento almacenado sp_executesql sería fuera del ámbito de la tabla variable. Sin embargo, puede crear la variable de tabla y realizar el procesamiento de todos los dentro de la ejecución el sp_executesql o declaración de procedimiento almacenado ya que, a continuación, es el ámbito local de las variables de tabla en la instrucción EXEC o el sp_executesql procedimiento almacenado.
¿Q4: Son estructuras de memoria de sólo lectura que garantiza un mejor rendimiento en comparación con las tablas temporales o permanentes, de las variables de tabla porque se mantienen en una base de datos que se encuentra en el disco físico?

A4: Una variable de tabla no es una estructura de memoria de sólo lectura. Debido a una tabla variable puede contener más datos que caben en la memoria, debe tener un lugar disco para almacenar datos. En la base de datos tempdb similar a las tablas temporales se crean las variables de tabla. Si la memoria está disponible, tanto las variables table y las tablas temporales se crean y se procesan mientras que en memoria (caché de datos).

Pregunta 5: Es necesario utilizar variables de tabla en lugar de tablas temporales?

A5: La respuesta depende de estos tres factores:
  • El número de filas que se insertan en el tabla.
  • El número de recompilaciones que se guarda la consulta a.
  • El tipo de consultas y su dependencia en índices y estadísticas de rendimiento.
En algunas situaciones, interrumpir un procedimiento almacenado con temporal en cuanto menor sea los procedimientos almacenados para que la recompilación efectúe en las tablas unidades más pequeñas es útil.

En general, se utilizan las variables de tabla siempre que sea posible, excepto cuando hay un volumen considerable de datos y no existe es el uso repetitivo de la tabla. En ese caso, puede crear índices en el tabla temporal para aumentar el rendimiento de la consulta. Sin embargo, cada escenario puede ser diferentes. Microsoft recomienda que pruebe si son más las variables de tabla muy útil que las tablas temporales para una consulta determinada o almacenados procedimiento.

Propiedades

Id. de artículo: 305977 - Última revisión: jueves, 30 de mayo de 2013 - Versión: 7.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbinfo kbmt KB305977 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 305977

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com