¿Hay alguna razón lógica para tener un espacio de tabla diferente para los índices?

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

  •  10-07-2019
  •  | 
  •  

Pregunta

Hola, ¿pueden decirme por qué creamos un espacio de tabla diferente para el índice y los datos?

¿Fue útil?

Solución

Es una creencia generalizada que mantener índices y tablas en espacios de tabla separados mejora el rendimiento. Ahora muchos expertos respetables lo consideran un mito (consulte este hilo de Ask Tom: busque " myth " ), pero sigue siendo una práctica común porque los viejos hábitos mueren mucho.

Edición de terceros

Extracto de asktom: " Index Tablespace " de 2001 para Oracle versión 8.1.6 la pregunta

  • ¿Sigue siendo una buena idea mantener los índices en su propio espacio de tabla?
  • ¿Esto inhabilita el rendimiento o es más un problema de recuperación?
  • ¿La respuesta difiere de una plataforma a otra?

Primera parte de la respuesta

Yes, no, maybe.

The idea, born in the 1980s when systems were tiny and user counts were in the single 
digits, was that you separated indexes from data into separate tablespaces on different 
disks.

In that fashion, you positioned the head of the disk in the index tablespace and the head 
of the disk in the data tablespace and that would be better then seeking 2 times on the 
same disk.

Drives back then were really slow at seeking and typically measured in the 10's to 100's 
of megabytes (if you were lucky)


Today, with logical volumes, raid, NN gigabyte (nn is rapidly becoming NNN gigabytes) 
drives, hundreds/thousands of concurrent users, thousands of tables, 10's of thousands of 
indexes - this sort of "optimization" is sort of impossible.

What you strive for today is to be able to manage things, to spread IO out evenly 
avoiding hot spots.

Since I believe all things should be in locally managed tablespaces with UNIFORM extent 
sizes, I would say that yes, indexes would be in a different tablespace from the data but 
only because they are a different SIZE then the data.  My table with 50 columns and an 
average row size of 4k might belong in a tablespace that has 5meg extents whereas the 
index on a single number column might belong in a tablespace with 512k or 1m extents.

I tend to keep my indexes separate from the data but for the above sizing reason.  The 
tablespaces frequently end up on the same exact mount points.  You strive for even io 
across your disks and you may end up with indexes and data on the same devices. 

Otros consejos

Tiene sentido en los años 80, cuando no había muchos usuarios y el tamaño de las bases de datos no era demasiado grande. En ese momento, era útil almacenar índices y tablas en los diferentes volúmenes físicos.

Ahora hay volúmenes lógicos, incursiones, etc., y no es necesario almacenar los índices y las tablas en diferentes espacios de tablas.

Pero todos los espacios de tabla deben administrarse localmente con un tamaño de extensión uniforme. Desde este punto de vista, los índices deben almacenarse en un espacio de tabla diferente, ya que la tabla con las 50 columnas podría almacenarse en el espacio de tabla con un tamaño exteds de 5Mb, cuando el espacio de tabla para índices será suficientet 512Kb de tamaño extendido.

  • Rendimiento. Se debe analizar de un caso a otro. ¡Creo que mantener todo junto en un espacio de tabla también se convierte en otro mito! Debe haber suficientes husos, suficientes luns y cuidar las colas en el sistema operativo. Si alguien piensa que hacer un espacio de tabla es suficiente y es lo mismo que muchos espacios de tabla sin tener en cuenta todos los demás factores, significa nuevamente otro mito. Depende!
  • Alta disponibilidad. El uso de espacios de tabla separados puede mejorar la alta disponibilidad del sistema en caso de que algunos archivos corrompan, corrompan el sistema de archivos, bloqueen la corrupción. Si el problema ocurre solo en el espacio de tabla de índice, existe la posibilidad de realizar la recuperación en línea y nuestra aplicación aún está disponible para el cliente. ver también: http : //richardfoote.wordpress.com/2008/05/02/indexes-in-their-own-tablespace-recoverability-advantages-get-back/
  • usando espacios de tabla separados para índices, datos, blobs, clobs, eventualmente algunas tablas individuales pueden ser importantes para la capacidad de administración y los costos. Podemos usar nuestro sistema de almacenamiento para almacenar nuestros blobs, clobs, eventualmente archivarlos en una capa de almacenamiento diferente con diferente calidad de servicio
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top