particionamiento de datos 21-01-2013

Upload: ronromero

Post on 04-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    1/60

    Administracin de Base de Datos

    Tcnicas de OptimizacinIng. Ronald [email protected]@shopepk.com

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    2/60

    Agenda

    Diseo de grupos de archivosArquitectura de OracleDiseo de un grupo de archivos para la particinQu es el particionamiento de datos?Esquemas de particinOperadores SPLIT y MERGEParticionamiento en Oracle

    Ventajas del particionamientoDesventajas del particionamientoVistas materializadasndicesrboles - B

    Almacenamiento de ndicesRestricciones sobre ndicesTipos bsicos de ndicesCriterios de valoracinndices en SQL Serverndices en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    3/60

    Diseo de grupos de archivos

    Los grupos de archivos definen la arquitectura dealmacenamiento bsica para todos los objetos de unabase de datos. Un conjunto de grupos de archivos biendefinido puede permitirle dirigir operaciones de copia deseguridad y de restauracin a una parte de la base de

    datos.

    La estructura de grupos de archivos que se defina puedeafectar tambin a las caractersticas de rendimientopara la operaciones de disco y aceptar capacidades departicin.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    4/60

    Diseo de grupos de archivos

    Para recuperabilidadLos grupos de archivos tienen que tener como mnimo unarchivo y pueden tener muchos archivos que abarcanunidades de disco. Un grupo de archivos crea la fronterade almacenamiento para todos los objetos de una base

    de datos, excepto las tablas, ndices y vistas indizada,puesto que todos tienen particiones.

    Los objetos sin particiones deben residir en un grupo earchivos nico, aunque la informacin que contenga unobjeto sin particin pueda abarcar ms de una archivo.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    5/60

    Diseo de grupos de archivos

    Para rendimientoEl diseo de archivos para rendimiento es, de hecho, unaafirmacin incorrecta.

    Los grupos de archivos no tienen ninguna caractersticade rendimiento inherente. Las caractersticas derendimiento derivan del archivo o archivos del grupo dearchivos.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    6/60

    Rendimiento de E/S del disco

    Recordar que la mejora del rendimiento que ver a partirde los diseos de grupos de archivos y la ubicacin dearchivos se refiere a operaciones que requieren E/S deldisco. Si ha diseado sus aplicaciones y bases de datos

    utilizando los siguientes principios, los beneficios enrendimiento sern mnimos porque casi todo el acceso ala informacin se producir desde la cach de datos en lamemoria.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    7/60

    Rendimiento de E/S del disco

    Principios:

    Todas las columnas estn definidas con el tipo dedatos ms pequeo para capturar informacin. Las aplicaciones extraen slo el nmero mnimo de filas

    necesarias. Las aplicaciones extraen slo el nmero mnimo decolumnas necesarias. El uso de tablas temporales y variables de tabla hasido minimizado.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    8/60

    Arquitectura general de Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    9/60

    Arquitectura de Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    10/60

    Diseo de un grupo de archivos para la particin

    Adems de disear grupos de archivos para rendimientoy recuperabilidad, los grupos de archivos tienen un papelfundamental en el diseo de particiones.

    Al aplicar una particin adecuada, puede alcanzar unaumento importante en la disponibilidad de la informacinporque ya no esta limitado por procesos de cargamasiva o de archivo.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    11/60

    Qu es el particionamiento de datos?

    La particin de tablas permite que se creen tablas,ndices y vistas materializadas en varios grupos dearchivos al tiempo que permite que el administrador de labase de datos especifique qu parte del objeto serrestaurado en un grupo de archivos especfico.

    Los registros de una tabla se dividen en diferentestrozos(como tablas individuales).

    Todos las filas siguen perteneciendo a la misma tabla

    lgica.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    12/60

    Esquema de particin (SQL Server)

    El esquema de particin define las estructuras dealmacenamiento fsicas que se utilizarn con un funcin departicin especifica.

    El proceso de crear una particin en una tabla, ndice o

    vista indizadas es el siguiente: Crear una funcin de particin. Crear un esquema de particin asignado a una funcinde particin. Crear una tabla, ndice o vista indizada en el esquema

    de particin.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    13/60

    Funciones de particin

    Una funcin de particin define los puntos de frontera queutiliza SQL Server para dividir informacin en un esquema departicin, un ejemplo de funcin de particin es el siguiente:

    CREATE PARTITION FUNTIONFuncionDeParticion (INT)

    AS RANGEFOR VALUES (10,20,30,40,50,60)

    La clausula AS permite especificar si la funcin de particin queest creando es RANGE LEFT o RANGE RIGHT. Los

    parmetros LEFT y RIGHT define que particin incluir lospuntos de fronteras.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    14/60

    Funcin de particin (RANGE LEFT)

    Nmero de Particin Valor mn. Valor mx.

    1 - 10

    2 11 20

    3 21 30

    4 31 40

    5 41 50

    6 51 60

    7 61 +

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    15/60

    Funcin de particin (RANGE RIGTH)

    Nmero de Particin Valor mn. Valor mx.1 - 9

    2 10 19

    3 20 29

    4 30 39

    5 40 49

    6 50 59

    7 60 +

    Como el mximo de particiones de un objeto es 1000,se puede especificar un mximo de 999 puntos defrontera

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    16/60

    Esquemas de particin

    Unesquema

    departicin,

    que es unadefinicin

    alternativapara el almacenamiento, se define para abarcar a uno o msgrupos de archivos. Un ejemplo de un esquema de particin esel siguiente:

    CREATE PARTITION SCHEME ParticionScheme

    AS PARTITION FuncionDeParticionTO (Fg1, Fg2, Fg3, Fg4, Fg5, Fg6, Fg7)

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    17/60

    Esquemas de particin

    La creacin de una tabla, ndice o vista indizada conparticin es similar crear una tabla, ndice o vistaindizadas sin particin.Ejemplo:

    CREATE TABLE Empleado( IdEmpleado INT NOT NULL,Nombre VARCHAR(30) NOT NULL,Apellido VARCHAR(30) NOT NULL) ON

    ParticionScheme (IdEmpleado)GO

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    18/60

    Operadores SPLIT y MERGE

    Como la informacin cambia constantemente, lasparticiones no suele ser esttica. Hay dos operadoresdisponibles para gestionar las definiciones de los puntosde frontera

    El operador SPLIT introduce un punto de frontera nuevoen una funcin de particin.

    MERGE elimina un punto frontera de una funcin departicin.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    19/60

    Operadores SPLIT y MERGE

    Sintaxis general:

    ALTER PARTITION FUNTION partition_funtion_name(){ SPLIT RANGE (boundary_value)| MERGE RANGE (boundary_value)} [;]

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    20/60

    Particionamiento en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    21/60

    Particionamiento en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    22/60

    Particionamiento en Oracle

    Particionamiento Composite

    CREATE TABLE TAB2 (ord_id NUMBER(10),ord_day NUMBER(2),ord_month NUMBER(2),ord_year NUMBER(4)

    )

    PARTITION BY RANGE(ord_year)SUBPARTITION BY HASH(ord_id)SUBPARTITIONS 8( PARTITION q1 VALUES LESS THAN(2001)

    ( SUBPARTITION q1_h1 TABLESPACE TBS1,SUBPARTITION q1_h2 TABLESPACE TBS2,

    SUBPARTITION q1_h3 TABLESPACE TBS3,SUBPARTITION q1_h4 TABLESPACE TBS4

    ),

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    23/60

    Particionamiento en Oracle

    Particionamiento Composite:

    PARTITION q2 VALUES LESS THAN(2002)

    ( SUBPARTITION q2_h5 TABLESPACE TBS5,

    SUBPARTITION q2_h6 TABLESPACE TBS6,

    SUBPARTITION q2_h7 TABLESPACE TBS7,

    SUBPARTITION q2_h8 TABLESPACE TBS8

    ),

    PARTITION q3 VALUES LESS THAN(2003)

    ( SUBPARTITION q3_h1 TABLESPACE TBS1,SUBPARTITION q3_h2 TABLESPACE TBS2,

    SUBPARTITION q3_h3 TABLESPACE TBS3,

    SUBPARTITION q3_h4 TABLESPACE TBS4

    ),

    PARTITION q4 VALUES LESS THAN(2004)

    ( SUBPARTITION q4_h5 TABLESPACE TBS5,

    SUBPARTITION q4_h6 TABLESPACE TBS6,

    SUBPARTITION q4_h7 TABLESPACE TBS7,

    SUBPARTITION q4_h8 TABLESPACE TBS8

    )

    )

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    24/60

    Particionamiento

    Ejemplo:

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    25/60

    Ventajas del particionamiento

    Ejemplo particionamiento por rango:

    CREATE TABLE time_range_sales

    ( prod_id NUMBER(6)

    , cust_id NUMBER

    , time_id DATE

    , channel_id CHAR(1)

    , promo_id NUMBER(6)

    , quantity_sold NUMBER(3)

    , amount_sold NUMBER(10,2)

    )

    PARTITION BY RANGE (time_id)

    (PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')),

    PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')),

    PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY')),

    PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE)

    );

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    26/60

    Ventajas del particionamiento

    Ejemplo particionamiento por rango :

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    27/60

    Ventajas del particionamiento

    Ejemplo particionamiento hash:CREATE TABLE hash_sales

    ( prod_id NUMBER(6)

    , cust_id NUMBER

    , time_id DATE

    , channel_id CHAR(1), promo_id NUMBER(6)

    , quantity_sold NUMBER(3)

    , amount_sold NUMBER(10,2)

    )

    PARTITION BY HASH (prod_id)PARTITIONS 2;

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    28/60

    Ventajas del particionamiento

    Ejemplo particionamiento hash:

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    29/60

    Ventajas del particionamiento

    Ejemplo particionamiento por lista:

    CREATE TABLE list_sales( prod_id NUMBER(6)

    , cust_id NUMBER

    , time_id DATE

    , channel_id CHAR(1)

    , promo_id NUMBER(6), quantity_sold NUMBER(3)

    , amount_sold NUMBER(10,2)

    )

    PARTITION BY LIST (channel_id)

    (PARTITION even_channels VALUES (2,4),PARTITION odd_channels VALUES (3,9)

    );

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    30/60

    Ventajas del particionamiento

    Ejemplo particionamiento por lista:

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    31/60

    Ventajas del particionamiento

    Un mejor equilibrio de carga.

    Mejores prestaciones.

    Mayor disponibilidad.

    Mejores posibilidades de recuperacin.

    Seguridad.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    32/60

    Desventajas del particionamiento

    Complejidad.

    Reduccin de las prestaciones.

    Duplicacin.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    33/60

    Vistas materializadas

    La vista materializada no es ms que una vista, definida con

    una sentencia SQL, de la que adems de almacenar sudefinicin, se almacenan los datos que retorna, realizando unacarga inicial y despus cada cierto tiempo un refresco de losmismos.

    La creacin de este tipo de vistas no es tan compleja comopuede parecer, lo ms importante es tener claro cada cuntotiempo queremos actualizar la informacin de las vistas, y qumtodo de refresco utilizar.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    34/60

    Vistas materializadas

    CREATE MATERIALIZED VIEW mi_vista_materializada

    [TABLESPACE mi_tablespace][BUILD {IMMEDIATE | DEFERRED}][REFRESH {ON COMMIT | ON DEMAND| [START WITH fecha_inicio] NEXT fecha_intervalo }| {COMPLETE | FAST | FORCE} ]

    [{ENABLE|DISABLE} QUERY REWRITE]AS SELECT t1.campo1, t2.campo2 FROM mi_tabla1 t1 ,mi_tabla2 t2WHERE t1.campo_fk = t2.campo_pk AND

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    35/60

    Vistas materializadas

    Una de las cosas importantes a tener en cuenta es que para

    poder utilizar este mtodo casi siempre es necesario habercreado antes un LOG de la Vista materializada, indicando loscampos clave en los que se basar el mantenimiento de lavista.

    Se utiliza la instruccinCREATE MATERIALIZED VIEW LOG ON:EjemploCREATE MATERIALIZED VIEW LOG ONmi_tabla_origen

    WITH PRIMARY KEY INCLUDING NEW VALUES;.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    36/60

    Vistas materializadas

    Carga de datos en la vista

    BUILD IMMEDIATE:Los datos de la vista se cargan en el mismo momento

    de la creacin

    BUILD DEFERRED:Slo se crea la definicin, los datos se cargarn ms

    adelante. Para realizar esta carga se puede utilizar lafuncin REFRESH del package DBMS_MVIEW:

    begindbms_mview.refresh('mi_vista_materializada');

    end;.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    37/60

    Vistas materializadas

    Mtodo y temporalidad del refresco de los datos:

    REFRESH ON COMMIT: Cada vez que se haga un commiten los objetos origen definidos en el selectREFRESH ON DEMAND: Como con la opcin DEFERREDdel BUILD, se utilizarn los procedures REFRESH,

    REFRESH_ALL_MVIEWS o REFRESH_DEPENDENT delpackage DBMS_MVIEW

    REFRESH [START WITH fecha_inicio] NEXTfecha_intervalo: START WITH indica la fecha del primerrefresco (fecha_inicio suele ser un SYSDATE) NEXT indicacada cunto tiempo se actualizar (fecha_intervalo podra serSYSDATE +1 para realizar el refresco una vez al da).

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    38/60

    Vistas materializadas

    Mtodo y temporalidad del refresco de los datos:

    REFRESH ON COMMIT: Cada vez que se haga un commiten los objetos origen definidos en el selectREFRESH ON DEMAND: Como con la opcin DEFERREDdel BUILD, se utilizarn los procedures REFRESH,

    REFRESH_ALL_MVIEWS o REFRESH_DEPENDENT delpackage DBMS_MVIEW

    REFRESH [START WITH fecha_inicio] NEXTfecha_intervalo: START WITH indica la fecha del primerrefresco (fecha_inicio suele ser un SYSDATE) NEXT indicacada cunto tiempo se actualizar (fecha_intervalo podra serSYSDATE +1 para realizar el refresco una vez al da).

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    39/60

    Vistas materializadas

    Ejemplo:

    CREATE MATERIALIZED VIEW LOG ONmi_tabla_origenWITH PRIMARY KEY INCLUDING NEW VALUES;CREATE MATERIALIZED VIEW

    mi_vista_materializadaREFRESH FAST NEXT SYSDATE + 7AS SELECT campo1, campo2, campo8FROM mi_tabla_origenWHERE campo2 > 5000;

    .

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    40/60

    ndices

    Los ndices se utilizan para mejorar el rendimiento de laspeticiones de datos. En un mundo perfecto, podra crearmuchos ndices para satisfacer todas las permutaciones deconsulta que crease un usuario. No obstante, los ndicesnecesitan mantenimiento.

    A medida que se inserta, se actualiza y se elimina informacin,hay que volver a calcular los ndices. La creacin de ndices debeser equilibrada para que cree suficientes ndices para mejorarlas consultas y al mismo tiempo asegurar el mnimo impacto enlas modificaciones de datos.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    41/60

    ndices

    Un ndice slo es til si proporciona un medio paraencontrar la informacin fcilmente a pesar del volumende informacin almacenado.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    42/60

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    43/60

    Ventajas de la estructura de rbol B

    Todos los nodos hojas estn al mismo nivel, recuperacinde cualquier registro toma el mismo tiempoArboles B permanecen balanceados automticamenteTodos los bloques estn llenos en un 75% en promedioProveen un buen desempeo para consultas exactas y por

    rangosInserciones, modificaciones y eliminaciones son eficientes, yse mantiene el orden de las claves para una recuperacinrpidaEl desempeo es bueno para tablas pequeas y grandes y

    no se degrada cuando la tabla crece.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    44/60

    Bsqueda en ndices basados en rbol B

    Bsqueda exactaEmpieza en el nodo razBsqueda de clave ms pequea mayor o igual que el valorSi es mayor que la clave, se sigue el apuntador anteriorhasta el hijo.Si es igual a la clave, se sigue el apuntador hasta el hijo

    Si no existe uno mayor o igual, se sigue el apuntador delvalor ms alto del bloque.Repita los pasos si el hijo es un nodo interno.Busca en la hoja la clave igual al valor.Si la clave se encuentra, retorna el ROWID

    Si la clave no se encuentra, la fila no existe..

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    45/60

    Bsqueda en ndices basados en rbol B

    Bsqueda por rango:

    Similar al scan nico pero buscando el lmite inferior delrangoBusca en las hojas todas las claves menores o iguales allmite inferiorSe aprovecha la lista enlazada de hojas.

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    46/60

    ndices (Clasificacin)

    LgicaUna columna o concatenado: Una sola o variascolumnas clavenico o no nico: Permite o no valores duplicados enla clave

    Basado en funciones: Basado en funciones sobre unao ms columnas de la tabla.Mecanismo eficiente para evaluar consultas quecontienen funciones en su clusula WHERE

    CREATE INDEX cantidad_a_despachar_idxON item(cantidad - cantidad_despachada);

    SELECT orden.id, item.id FROM itemWHERE (cantidad - cantidad_despachada) > 0;

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    47/60

    ndices (Clasificacin)

    FsicaParticionado o no particionadorbol BNormalInvertido

    BitmapBitmap Join

    Al i d di

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    48/60

    Almacenamiento de ndices

    Cuando se crea un ndice se asigna automticamente unsegmento de ndice.Se puede administrar el espacio de un segmento dendice de la siguiente forma:

    oEspecificando los parmetros de almacenamiento

    relacionados con la asignacin deextents

    oEspecificando el parmetro PCTFREESe puede asignar un tablespace diferente al tablespacede los datos, mejorando asel desempeo.Cuando se crea el ndice, el DBMS hace sort sobre las

    columnas del ndice y almacena el rowid y el valor delndice para cada fila.

    R i i b di

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    49/60

    Restricciones sobre ndices

    Se pueden crear tantos ndices sobre las tablas como

    combinaciones de columnas diferentes existan.Se puede crear un ndice sobre el mismo conjunto decolumnas, si las mismas estn ordenadas de formadiferente.No se pueden crear dos ndices sobre el mismoatributo.Se puede borrar un ndice sin alterar los datos de latabla de datos.

    R i i b di

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    50/60

    Restricciones sobre ndices

    Oracle crea automticamente:Un ndice UNIQUE basado en B*-tree para mantener lascolumnas que se hayan definido como clave primaria de unatabla utilizando el CONSTRAINT PRIMARY KEY de una tablano organizada por ndice.

    Un ndice UNIQUE basado en B*-tree para mantener lascolumnas sobre las que se defini el CONSTRAINT UNIQUE.Un ndice basado en B*-tree para mantener las columnasque se hayan definido como clave primaria y todas las filasde una tabla organizada por ndice.

    Un ndice basado en hashing para mantener las filas de ungrupo de tablas (cluster) organizado por hash.

    Ti b i d di

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    51/60

    Tipos bsicos de ndices

    ndices Ordenados: Estos ndices estn basados en una

    disposicin ordenada de los valores.

    ndices Asociativos (ndices Hash): Estos ndices estnbasados en una distribucin uniforme de los valores a travsde una serie de cajones (buckets); El valor asignado a cada

    cajn est determinado por una funcin, llamada funcin deasociacin (Hash Function)

    Tcnicas de Indexacin / Tcnicas de Asociacin

    C it i d l i

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    52/60

    Criterios de valoracin

    Tipos de Acceso: Los tipos de acceso que se soportaneficazmente (estos tipos podran incluir la bsqueda deregistros con un valor concreto en un atributo o buscar losregistros cuyos atributos contengan valores en un rangoespecificado).

    Tiempo de Acceso: El tiempo que se tarda en buscarun determinado elemento de datos o conjunto deelementos, usando la tcnica en cuestin.

    C it i d l i

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    53/60

    Criterios de valoracin

    Tiempo de Insercin: El tiempo empleado en insertar un

    nuevo elemento de datos (este valor incluye el tiempoutilizado en buscar el lugar apropiado donde insertar elnuevo elemento de datos, ascomo el tiempo empleado enactualizar la estructura de ndice)

    Tiempo de Borrado: El tiempo empleado en borrar unelemento de datos (este valor incluye el tiempo utilizado enbuscar el elemento a borrar, ascomo el tiempo empleadoen actualizar la estructura de ndice)

    Criterios de valoracin

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    54/60

    Criterios de valoracin

    Espacio Adicional Requerido: El espacio adicional ocupadopor la estructura del ndice (como normalmente la cantidadnecesaria de espacio adicional suele ser moderada, esrazonable sacrificar el espacio para alcanzar un rendimientomejor)

    Claves de bsqueda

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    55/60

    Claves de bsqueda

    Los atributos o conjuntos de atributos usados parabuscar en un archivo se llaman claves de bsqueda Estadefinicin de clave de bsqueda no tiene nada que ver conclave primaria, clave candidata y superclave

    ndices en SQL Server

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    56/60

    ndices en SQL Server

    Sintaxis general:

    CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX

    index_name ON ( column [ ASC | DESC ] [ ,...n ] ) [

    INCLUDE ( column_name [ ,...n ] ) ]

    [ WITH ( [ ,...n ] ) ]

    [ ON { partition_scheme_name ( column_name ) |filegroup_name | default } ]

    [ FILESTREAM_ON { filestream_filegroup_name |

    partition_scheme_name | "NULL" } ]

    [ ; ]

    Habilitar / Deshabilitar un ndice en SQL Server

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    57/60

    Habilitar / Deshabilitar un ndice en SQL Server

    Sintaxis general:

    ALTER INDEX { index_name | ALL}

    ON

    DISABLE [;]

    ALTER INDEX { index_name | ALL}

    ON

    REBUILD[;]

    ndices en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    58/60

    ndices en Oracle

    Sintaxis general:

    CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name

    ON [esquema.]table_name [tbl_alias]

    (col [ASC | DESC]) index_clause index_attribs

    ndices en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    59/60

    ndices en Oracle

    Bitmap Join Index:

    CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name

    ON [esquema.]table_name [tbl_alias]

    (col_expression [ASC | DESC])

    FROM [esquema.]table_name [tbl_alias]

    WHERE condition [index_clause] index_attribs

    ndices en Oracle

  • 7/29/2019 Particionamiento de Datos 21-01-2013

    60/60

    ndices en Oracle

    Cluster Index:

    CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name

    ON CLUSTER [esquema.]cluster_name index_attribs