Wednesday, September 10, 2008

Mas de los esquemas en SQL 2005.

En un post anterior comentaba acerca de lo recomendable que era que los owners de los esquemas no debían ser los mismo usuarios, para evitar problemas en futuras migraciones.

Pues bien, según una entrada del blog de Microsoft ISV Program Management Team, lo mejor que puedes hacer después de haber migrado a SQL 2005 es cambiar el default esquema de los usuarios a dbo, esto te dará un aumento de hasta un 15% en el throughput del servidor, esto, si en las llamadas que se hacen a los objetos no se incluye "dbo", que es un best practice, por cierto.

Se puede cambiar el default esquema de los usuarios fácilmente con el comando ALTER USER WITH DEFAULT_SCHEMA=dbo

Se puede utilizar este script para obtener como respuesta el script que se tiene que correr en cada base de datos:

select 'alter user '+ name + ' with DEFAULT_SCHEMA=dbo;'
from sys.database_principals
where default_schema_name is not null and name<>'dbo' and name <>'guest' and default_schema_name<>'dbo'

Esto se corre en cada base de datos, en la que se desea hacer y se obtiene de resultado el script con el que se cambian todos los usuarios rápidamente.

Una vez que se cambió el default esquema de los usuarios, lo recomendable es eliminar los esquemas de los usuarios, con este script se pueden obtener el script para eliminar los esquemas por cada base de datos:

select 'DROP SCHEMA '+ name + ';'
from sys.schemas
where schema_id between 5 and 16383

No comments: