Me gustaría crear un índice en una vista que tengo, pero necesito asegurarme de que los datos puedan leerse mientras se crea el índice. Estaba leyendo un article que sugiere que cuando se crea un índice no agrupado que los datos están siendo legible si se especifica la opción LÍNEA = ON (ejemplo abajo):¿La creación de un índice no agrupado en una tabla de SQL Server 2005 evita las selecciones?
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON)
Estoy entendiendo esto correctamente? ¿Hay algún problema potencial que deba tener en cuenta antes de crear índices en una vista que deba ser legible mientras creo mi índice?
Gracias, no me di cuenta. Planeo crear dos índices en esta vista, el grupo inicial que mencionaste y un grupo no agrupado después de eso. ¿Sabe usted de todos modos mantener legibles los datos en mi opinión mientras creo el clúster inicial? BTW Estoy ejecutando edición empresarial. –
La vista de índice agrupado bloqueará las filas en la tabla, bloqueando así las lecturas de las filas bloqueadas (bajo el nivel de serialización predeterminado). ¿Qué tan grande es la mesa? ¿Estamos hablando de unos segundos o algunas horas de tiempo de creación del índice? Puede considerar habilitar la captura de lectura confirmada, esto permitirá que los SELECT no se vean afectados. Pero esto tiene un impacto global en el sistema, especialmente en tempdb, por lo que debes probarlo de antemano. –
La tabla tiene más de 9 millones de registros. Estoy pensando que los índices tardarían unos 15 minutos en crearse. Si la gente no puede leer durante 15 minutos, entonces tendría un problema. ¿Podría ser más específico sobre el impacto que la habilitación de lectura comprometida tendría en el sistema? ¿Cómo recomendarías probar antes de mano? –