none
Consulta RRS feed

  • Pregunta

  • Hola a todos tengo la siguiente consulta, si me pueden ayudar

    Explique la(s) diferencia(s) entre las siguientes formas de definir una tabla:
    Forma 1: DECLARE @table_var TABLE ([KEY] INT, [Name] TEXT);
    Forma 2: CREATE TABLE #table_temp ([KEY] INT, [Name] TEXT);
    ¿Cuál de las dos formas utilizaría usted para resolver una operación que requiera
    consultar 100.000 registros?

    martes, 30 de enero de 2018 18:47

Respuestas

  • Hola

    La forma 1 es la variable tipo tabla y la forma 2 es tabla temporal. Es mejor utilizar variables tipo tabla, pero cuando manejas varios registros es mejor utilizar tablas temporales, sobre todo si las vas a volver a reutilizar durante el proceso, ya que por ejemplo podrías crear índices a la misma para hacer las consultas de grandes datos, como en tu caso.

    Saludos


    Brayan De la Cruz
    Lima - Perú


    martes, 30 de enero de 2018 18:56

Todas las respuestas

  • Hola

    La forma 1 es la variable tipo tabla y la forma 2 es tabla temporal. Es mejor utilizar variables tipo tabla, pero cuando manejas varios registros es mejor utilizar tablas temporales, sobre todo si las vas a volver a reutilizar durante el proceso, ya que por ejemplo podrías crear índices a la misma para hacer las consultas de grandes datos, como en tu caso.

    Saludos


    Brayan De la Cruz
    Lima - Perú


    martes, 30 de enero de 2018 18:56
  • Hola:

    Supongo que al objeto de comprender, esto te puede ayudar un poco.

    CREATE TABLE #MITABLA (ID INT PRIMARY KEY IDENTITY (1,1),
    NOM VARCHAR(200))

    INSERT INTO #MITABLA VALUES ('PEPE');

    Luego con el Manager te vas a las bases de datos del sistema y buscas dentro de la base de datos tempdb, en tablas temporales, ahí observarás la tabla MITABLA.

    Supongo que una variable de tabla, tal cual te comenta Brayan, tiene que ser más eficiente, pero...... siempre depende, de la cantidad de recursos, de los cuales puedas disponer.

    Si utilizas Create table, yo creo que te irá mejor, no te olvides, de antes de empezar la ejecución, consultar si existe y caso correcto, eliminarla.

    Saludos

    miércoles, 31 de enero de 2018 7:18
  • Martin Smith

    Ha escrito TODO UN DOCUMENTO donde explica a gran detalle cual es la diferencia entre TABLAS TEMPORALES y VARIABLES DE TIPO TABLA.

    Por si desean leer todo el documento

    Si no mal recuerdo en la version 2017 se acaba con esta cuestion, todas las tablas pasar a ser "normales", solo que se les puede definir una vigencia de vida (tiempo). De no definir esta vigencia, se vuelven persistentes.

    miércoles, 31 de enero de 2018 17:45
  • No encontre nada como lo que mencionas Isslas sobre cambios en 2017.

    Podrias dar mas informacion al respecto.


    Blog: www.sqlservertoolbox.blogspot.com.mx

    miércoles, 31 de enero de 2018 22:07