Pregunta

Tengo un escenario en el que combino dos tablas en una (usando UNION) y también se unen a los datos de otras tablas.

Me puede hacer esto ya sea con una vista o una función UDF / definido por el usuario.

Teniendo en cuenta que no tengo vista hasta ahora en absoluto en mi base de datos, pero un buen número de UDF para la búsqueda de texto completo y similares, que estoy tentado a usar una UDF para este escenario, así mantenerla "limpia".

Sin embargo, esto es totalmente subjetiva y me preguntaba si hay una razón mejor objetivo para ir, ya sea para una vista o una UDF en este escenario.

I se puede comparar planes de consulta para ambos y que son exactamente la misma, así que no creo que hay una penalización en el rendimiento o ventajas para el uso de cualquiera de ellos.

¿Hay otra razón para elegir uno sobre el otro o lo hace no importa?

¿Fue útil?

Solución

Siempre usaría características con el fin de sofisticación. Una vista es relativamente sencillo en términos de perfil de rendimiento y gestión de la seguridad. Probablemente me volvería a utilizarlo por primera vez.

Estoy asumiendo que usted está hablando de una línea con valores de tabla UDF, que bastante tienen idénticas características de rendimiento. Seguridad en un UDF es un poco diferente y no se puede tener en lugar de disparadores para ser capaz de hacer "inserciones" en la vista. Una de las ventajas de la UDF sería que puede forzar parámetros a suministrar, asegurando de esta manera los patrones de uso son los esperados, mientras que un punto de vista se puede consultar sin ningún criterio (tal vez accidentalmente).

Si no terminan querer tener una UDF para la parametrización, puede estratificar en la parte superior de la vista (por lo que no duplicación de código) y usted debe encontrar que el rendimiento no se ve afectado de manera significativa, debido a que el optimizador puede combinar puntos de vista y TVF en línea con bastante éxito.

Otros consejos

Una de las ventajas que veo a través de este escenario como vista es indexar y utilizarlos como "vistas indizadas", donde a diferencia de un punto de vista tradicional hay archivo físico que se crea y, por tanto, la consulta es más rápido donde hay una considerable cantidad de filas eso. El mismo efecto de usar esto es para derivación de las uniones y sindicatos para todas las filas en lugar de construir solamente para nuevas filas.

A medida que nuestro amigo le sugirió Cade, que CUD utilizar una vista interior de una UDF para mantenerlo limpio y no es una gran cantidad diferente.

Espero que esto ayude!

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