Como llegar Redgate Comparación de datos para tener en cuenta el orden de clasificación?

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

Pregunta

Estoy utilizando SQL-Server 2005.

Tengo un dev y prod base de datos que tiene esencialmente los mismos datos en ellos. Cuando hago un comparan con Redgate de datos SQL de comparación 5, se dice que sólo 4 registros difieren. Sin embargo, cuando abro las tablas y verlos, ellos están en un orden completamente diferente. Ni tabla tiene un índice o nada forzar el orden de clasificación, y yo estoy tratando de asegurarse de que mi dev se ordena en el mismo orden que prod. Pero Redgate no me dirá cuando estoy cerca, ya que al parecer se encontraba registros que coinciden, incluso si no están en el mismo orden de clasificación. ¿Cómo puedo reemplazar eso?

Me gustaría utilizar la herramienta de decir cuando he descubierto el orden de clasificación, para asegurarse de que lo tengo.

¿Fue útil?

Solución

A diferencia orden de clasificación sólo significa que las filas se colocan en los archivos de datos de una forma física diferente, pero los datos aún coincide exactamente, por lo que todavía DC informa que coinciden. No hay opción para conseguir que "respetar el orden de disco físico" (que es esencialmente lo que está pidiendo), ya que aunque se notó una diferencia, no hay manera de sincronizar la diferencia, como SQL Server tiene ningún método para controlar de modificar orden del disco.

El orden en que los datos se extrae del disco cuando se consulta una tabla no debe nunca ser invocada - si usted requiere un cierto orden, que debe incluir un "ORDER BY" cláusula en su consulta para forzar un cierto orden de clasificación . Si hay alguna razón que no se puede usar ORDER BY, su única otra opción para forzar un cierto orden de clasificación es la adición de un índice agrupado en el campo por el que desea ordenar la tabla.

Si usted realmente necesita para volver a ordenar los datos, entonces tendrá que truncar la tabla que es "malo" y rellenarla con un "INSERT INTO [mal tabla de orden] SELECT * FROM [buena tabla de pedidos]". Incluso entonces, mientras que debería tener el efecto deseado, no hay garantía.

Me gustaría recomendar la orden por la cláusula como su mejor opción. Si hay una razón ninguna de estas opciones funciona, hágamelo saber y puedo tratar de sugerir otra cosa.

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