SQL Asistente para la optimización de Oracle SQL Developer v3 sugiere lo siguiente para mi consulta:¿Es necesario considerar dejar caer el índice existente, ya que es un prefijo del índice recomendado
considere ejecutar el Asesor de Acceso a mejorar la esquema físico diseño o crear el índice recomendado. Si decide crear el índice recomendada, considera eliminar el índice "SchemaName". "INDEXNAME" (en 'COLUMN1') porque es un prefijo del índice recomendado .
create index SCHEMANAME.NEW_INDEXNAME on SCHEMANAME.TABLENAME("COLUMN1","COLUMN2");
¿Hay algún daño en no haciendo sugerencia en negrita? El problema es que el índice existente que sugiere descartar es utilizado por otros procedimientos. No creía que las ideas pudieran "perjudicarse" entre sí, ¿hay alguna desventaja de dejar ambos índices aparte del espacio en disco que tomarán y un declive de rendimiento insignificante en la inserción/actualización?
+1 pero tal vez también podría agregar la desventaja de espacio de almacenamiento adicional? –
¡listo! el viejo índice está en la columna1. Bueno, si eliminarlo no dañará el filtrado en la columna 1, ¿por qué no siempre creamos un gran índice de grasa para todas las columnas que consultamos? – Tsar
@tsar Un índice de datos crea copias de los datos en una estructura de datos diferente (B-tree en SQL Server, inseguro en otros RDBMS). Si es un índice no agrupado, solo copiará esos campos (Columna1/Columna2 en este caso) y luego una referencia para buscar el resto de los datos de ese registro en la tabla completa. Un índice agrupado almacena todo el conjunto de datos en la estructura de datos adicional. Esto significa * mucho * de sobrecarga de datos, y un montón de procesamiento para equilibrar la estructura de datos en la inserción/actualización. –