En caso de una base de datos Oracle tiene más de un espacio de tablas de almacenamiento de datos?

StackOverflow https://stackoverflow.com/questions/1291317

  •  18-09-2019
  •  | 
  •  

Pregunta

Mi equipo mantiene una base de datos de Oracle que es de aprox. 200 GB de tamaño. Todos los datos (tablas, índices, etc.) vive dentro de un único espacio de tabla 'usuarios'. ¿Es una mala idea? ¿Qué beneficios están ahí para tener múltiples espacios de tablas, y en qué circunstancias iba a querer añadir más a mi base de datos?

Gracias!

¿Fue útil?

Solución

Mi sesgo (y esto es en gran medida una cuestión de preferencia personal) es que si no hay un beneficio convincente para la creación de espacios de tablas adicionales, la vida es más fácil con un único espacio de tabla.

  • No hay ninguna ventaja de rendimiento a poner los objetos en diferentes espacios de tablas. Hay un viejo mito de que las tablas e índices que separan tendrían algunas ventajas de rendimiento. Hay un beneficio potencial para la difusión de E / S a través de todos los husillos disponibles, pero eso es mejor hacer con varios archivos de datos en un solo espacio de tabla a continuación, con múltiples espacios de tablas desde Oracle hace una asignación round robin de extensiones en diferentes archivos de datos asumiendo que su ISN SAN 't ya hacer algo para igualar E / S.
  • Si tiene tablas de consulta / historia estática y amplia de tal manera que usted podría traer una nueva copia de la base de datos al sitio del cliente con sólo traer los espacios de tablas transaccionales más pequeños, eso sería una razón para considerar múltiples espacios de tablas. Pero hay muy pocas aplicaciones que tienen este tipo de configuración. Si usted tiene que llevar toda 200 GB, no importa cuántos espacios de tablas que tiene.
  • En la misma línea, si tiene grandes objetos de sólo lectura, poniéndolos en un espacio de tablas de sólo lectura puede disminuir enormemente el tiempo y el espacio necesario para las copias de seguridad. Una vez más, sin embargo, esto no es particularmente común en la práctica fuera de almacenes de datos.
  • Si su aplicación podría funcionar sin un cierto subconjunto de objetos, puede haber un beneficio para la creación de espacios de tablas separadas para que usted pueda tomar una línea y hacer un nivel de tablas de restauración. Otra vez sin embargo, algunas aplicaciones podrían funcionar sin un conjunto de objetos-- si se pierde el espacio de tabla de índice, por ejemplo, la aplicación es probable que tan muerto como si hubieras perdido todo.
  • Si usted tiene un gran número de mesas vacías o casi vacías y una serie de tablas muy grandes, los espacios de tablas separadas con diferentes políticas de asignación de medida puede ser preferible desde el punto de vista utilización del espacio. Esto sucede de vez en cuando con las aplicaciones empaquetadas en cualquier instalación dada está utilizando un porcentaje relativamente pequeño de las mesas disponibles y no quieren cada una de las mesas vacías para tener una extensión relativamente grande asignado a la misma. Con la administración de medida automática en un espacio de tablas gestionado localmente, esto tiende a no ser una preocupación importante, puede ser más preocupante si se desea utilizar extensiones uniformes.
  • Si diferentes objetos tienen diferentes prioridades para el rendimiento del disco, y tiene diferentes tipos de disco disponible, espacios de tablas separadas pueden permitir poner diferentes objetos en diferentes conjuntos de discos. En un almacén de datos, por ejemplo, es posible que desee poner los datos más antiguos en el disco más lento, más barato y más nuevos datos en el disco más costoso. Esto no sucede mucho con las aplicaciones OLTP.

A menos que su aplicación cae en uno de estos casos especiales, el único beneficio de tener espacios de tablas separadas es apelar al sentido de la organización de un DBA. En lo personal, estoy más que feliz de ser capaz de no especificar un nombre de tablas cada vez que se crea un objeto o para pasar ciclos de objetos en movimiento del espacio de tabla "mal" cuando inevitablemente se crean en el espacio de tabla predeterminado por error. En lo personal, no estoy demasiado preocupado si unas pocas decenas de MB de espacio se "desperdicia" cuando se utiliza tablespaces gestionados localmente con la gestión automática de medida sobre un conjunto optimizado a mano de espacios de tabla con diferentes tamaños de extensión uniforme. Por otra parte, de buenas DBA tienden a ser muy preocupados por las cosas están organizando "tan" así que no estoy en contra militantemente si un DBA quiere tener espacios de tablas de índice y de datos separadas sólo por lo que apela al sentido de la estética de alguien.

Otros consejos

http://download.oracle.com /docs/cd/B10501_01/server.920/a96521/tspaces.htm

http://download.oracle.com /docs/cd/B28359_01/server.111/b28318/physical.htm

  

Puede usar múltiples espacios de tablas a   realizar las siguientes tareas:

     

asignación de espacio en el disco de control para   datos de base de datos

     

Asignar cuotas de espacio específicos para   usuarios de bases de datos

     

disponibilidad de los datos de control mediante la adopción de   tabla individuales en línea o   sin conexión

     

Realizar copia de seguridad de base de datos parcial o   operaciones de recuperación

     

Asignar almacenamiento de datos a través de dispositivos   para mejorar el rendimiento

Una de las razones para el uso de los diferentes espacios de tabla sería un deseo de usar el transporte de tablas para mover datos entre bases de datos. Si usted tiene un conjunto limitado de datos que desea mover sin tener que exportar e importar, entonces el transporte de tablas es una buena opción, sobre todo si es importante por razones de prueba que los datos tienen exactamente la misma estructura física que el sistema de origen ( para el trabajo de análisis de rendimiento, por ejemplo).

Estoy totalmente en desacuerdo con la evaluación Cuevas Justin. Un DBA producción probablemente tendría una opinión muy diferente.

disponen de espacios de tabla transportables para mover subconjuntos de los datos entre bases de datos, sin tener que mover toda la base de datos.

de sólo lectura de tablas por lo que no realiza el respaldo de toda la base de datos cada semana, lo que podría llevar muchas horas, y no puede soportar el impacto en el rendimiento por esa cantidad de tiempo, incluso si su limitación de la tasa.

copia de seguridad sólo ciertos espacios de tablas en fechas fijas, debido al gran tamaño, aunque muchos lugares simplemente no tienen bases de datos de este tamaño. misma razón que el punto anterior.

Dependiendo de la aplicación, digamos que hay módulos que pueden funcionar de forma independiente el uno del otro en el lado de la aplicación. Si cada uno tiene su propio conjunto de espacios de tabla, puede tomar uno de tablas aplicaciones en línea para hacer una reorganización sin afectar a los otros módulos ... que pueden correr de forma normal.

En cuanto a la separación de los datos e índices: el motivo era tradicional para poner los dos en diferentes discos por lo que no compiten entre sí con respecto al rendimiento. No tanto de un problema con capacidades de almacenamiento de hoy, al igual que las redes SAN, donde todo realmente la misma área de almacenamiento, pero no es Todavía la consideración de que vas a conseguir la contención a nivel de cabecera de archivos, incluso con tablespaces gestionados localmente si usted tiene todos sus objetos en el mismo espacio de tablas donde no se puede separar locigally los índices de las tablas !! Incluso si crea 20 archivos de datos en un espacio de tablas, que no se llega a decidir dónde las tablas e índices van, y luego un día se da cuenta que tiene mayor contención a nivel de cabecera de archivos debido a la actividad masiva en contra en la mesa donde está índices pasará a estar en el mismo archivo de datos! De hecho el desguace de eso. si usted ha conseguido solamente uno ts, entonces y sin duda la experiencia de contención encabezado del archivo.

hay más razones para tener que la separación lógica, y no, no se trata de la actuación en su mayor parte, se trata más de la administración en un entorno de producción.

S. Lott ya se dio una buena lista de razones generales por las que se podría querer dividir que hasta en múltiples espacios de tablas.

Más específica a su situación ...

Me pregunto si hay razones específicas para cambiar las cosas ahora. Es no es tarea fácil hacer un cambio estructural de esa manera. ¿Hay problemas de rendimiento? ¿Está ejecutando en contra de los límites de espacio de almacenamiento? ¿Es necesario asignar cuotas de espacio? ¿Tiene su copia de seguridad y restaurar presente plan de satisfacer sus necesidades?

Si pudiera volver atrás en el tiempo y volver a hacer las cosas desde el principio que sin duda que planificar con sensatez para dividir la base de datos en diferentes espacios de tabla. Pero ¿vale la pena ahora?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top