<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://dosideas.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=190.216.217.2</id>
		<title>Dos Ideas. - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://dosideas.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=190.216.217.2"/>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/Especial:Contribuciones/190.216.217.2"/>
		<updated>2026-06-13T17:54:18Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Primary_Key_En_Tablas_Particionadas&amp;diff=5524</id>
		<title>Primary Key En Tablas Particionadas</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Primary_Key_En_Tablas_Particionadas&amp;diff=5524"/>
				<updated>2010-10-29T20:17:02Z</updated>
		
		<summary type="html">&lt;p&gt;190.216.217.2: /* Ejemplo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Oracle]]&lt;br /&gt;
Una [[Tabla Particionada]] es una buena opción para las tablas transaccionales que contengan mucho volumen de registros y/o que vayan guardando una historia o se necesiten históricos.&lt;br /&gt;
&lt;br /&gt;
Al crear una [[Tabla Particionada]], que ésta contenga índices locales a la partición y no globales (incluyendo la PK) facilita la depuración de sus particiones, sobre todo desde el punto de vista de administración (DBAs).&lt;br /&gt;
&lt;br /&gt;
Para que la PK pueda ser local a las particiones, en la conformación de ésta debe existir el campo por el cuál se particiona.&lt;br /&gt;
&lt;br /&gt;
=Ejemplo=&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE LA_TABLA (&lt;br /&gt;
    ID_TABLA    NUMBER(10)    NOT NULL,&lt;br /&gt;
    UN_CAMPO    VARCHAR2(3)   NOT NULL,&lt;br /&gt;
    FEC_ALGO    DATE          NOT NULL,&lt;br /&gt;
    OTR_CAMPO   NUMBER(14,4)  NULL)&lt;br /&gt;
 PARTITION BY RANGE (FEC_ALGO)&lt;br /&gt;
  (&lt;br /&gt;
   PARTITION LA_TABLA_200805 VALUES LESS THAN (TO_DATE('2008-06-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')),&lt;br /&gt;
   PARTITION LA_TABLA_200806 VALUES LESS THAN (TO_DATE('2008-07-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')),&lt;br /&gt;
   PARTITION LA_TABLA_200807 VALUES LESS THAN (TO_DATE('2008-08-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')));&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE LA_TABLA&lt;br /&gt;
 ADD CONSTRAINT LA_TABLA_PK&lt;br /&gt;
     PRIMARY KEY (ID_TABLA, FEC_ALGO)&lt;br /&gt;
 USING INDEX&lt;br /&gt;
 LOCAL&lt;br /&gt;
 (&lt;br /&gt;
    PARTITION LA_TABLA_200805,&lt;br /&gt;
    PARTITION LA_TABLA_200806,&lt;br /&gt;
    PARTITION LA_TABLA_200807&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Como ven en la creación de la PK se le indica que ésta es local a las particiones.&lt;br /&gt;
&lt;br /&gt;
El campo de partición tiene que estar en la PK, pero puede ir en cualquier orden, como primer campo o en el medio o último, donde le convenga a la aplicación (según como se aproveche más para los accesos).&lt;br /&gt;
&lt;br /&gt;
Sí, y queda una PK compuesta con algo de sentido de negocio...&lt;br /&gt;
&lt;br /&gt;
Esta tabla en particular está particionada por mes, esto es lo más común, pero se puede particionar por cualquier rango de tiempo, o aún con rangos numéricos no basados en el tiempo (no hace falta que el campo sea date), esto va a demanda de la carga de datos.&lt;br /&gt;
&lt;br /&gt;
=Ver también=&lt;br /&gt;
*[[Tabla Particionada]]&lt;br /&gt;
*[[Oracle]]&lt;/div&gt;</summary>
		<author><name>190.216.217.2</name></author>	</entry>

	</feed>