Boletín mugperu Digital - Julio 2009!
  Search 
Thursday, February 09, 2012 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Temas Varios SQL Server
Prev Next
You are not authorized to post a reply.

Author Messages
aderossi
Posts:23

08/06/2010 06:32 PM  
1.- Al instalar el SQL Server 2008 se amarra al dominio? o luego de haber sido instalado hay forma de modificar eso en la configuración? o no influye en nada el cambiar de dominio el servidor después de haber instalado el SQL?
 
No hay problema en instalar SQL en un servidor de dominio, no hay ningún tipo de "amarre" en el servidor de dominio y el motor de base de datos. Cambiar luego el servidor a otro dominio si es posible pero si influye por el lado de los clientes o aplicaciones que se conectan al servidor, ya que al estar en otro dominio pueden haber restricciones de acceso. El nombre del servidor también va a cambiar así que la conexión a SQL de las aplicaciones se debe actualizar con el nuevo nombre.
 
Pero se recomienda no instalar SQL Server en un servidor de dominio. Esto por temas de desempeño y administración. El servidor de dominio realiza tareas y operaciones que utilizan recursos de memoria y procesador, por lo tanto SQL Server va a competir por estos recursos afectando desempeño (velocidad). Para monitorear el servidor también hay que tener cuidado aislando adecuadamente las variables que quieres medir (memoria, procesador, cola de disco, etc.) para monitorear solo lo relacionado a SQL Server y no al dominio u otras aplicaciones que estén ejecutándose en el mismo servidor.
 
Best practice: Utilizar un servidor exclusivo para la base de datos

2.- En mi trabajo estamos empezando a estandarizar los nombres de las base de datos y sus objetos, no se si existe alguna normalización o formato establecido para realizar esto?.
 
En esto hay mucho por conversar. No existe un estándar aceptado por todos pero si hay recomendaciones:
 
1. Usar mayúsculas y minúsculas: en vez de nombra un procedimiento USPACTUALIZACLIENTE o uspactualizacliente, recomiendo usar uspActualizaCliente. Es mas fácil de leer
2. Nombrar los objetos con un prefijo que indique el tipo de objeto (menos tablas y vistas), por ejemplo:
  • bd - base de datos
  • usp - Procedimiento almacenado (Siempre anteponer la "u" de "usuario" para que no se confunda con los procedimientos almacenados del sistema, que comienzan con sp)
  • tr - trigger (tri - Trigger insert, tru - trigger update, trd - trigger delete) 
  • dtr - data base trigger
  • fne - función de usuario escalar
  • fnt - funcion de usuario tipo tabla
Además, sobre los nombre de objetos de programación, se recomienda que el nombre contenga información que permita identificar rápidamente que es lo que hace:
 
uspActualizaCliente es el procedimiento almacenado que actualiza la entidad cliente (puede actualizar una o muchas tablas)
fneCalculaComisiónVenta es la función de tipo escalar que calcula una comisión de venta
fntListadoItemsAlmacen es la función de tipo tabla que lista los ítems de determinado almacén
 
Algunos inclusive, incluyen en el nombre los módulos o sistemas a los que pertenecen los objetos:
 
uspMKTActualizaCliente es el procedimiento almacenado que actualiza la entidad cliente (puede actualizar una o muchas tablas), en el módulo de marketing
fneVTACalculaComisiónVenta es la función de tipo escalar que calcula una comisión de venta en el modulo de ventas
fntLOGListadoItemsAlmacen es la función de tipo tabla que lista los ítems de determinado almacén en el módulo de logística
 
3. Sobre los nombre de las tablas:
  • Usar nombres simples y entendibles que represente la entidad que contiene la tabla o vista (Cliente, Factura, TipoCliente).
  • Algunos autores recomiendan anteponer a los nombres de las tablas la letra "t" pero no estoy de acuerdo. También se recomienda anteponer al nombre de las vistas la letra "v". Este si puede ser factible para diferenciarlas de las tablas.
  • Recomiendo usar nombres en singular: Cliente en vez de Clientes
En general, trata de tomar decisiones analizando los objetos en su conjunto y no aisladamente. En internet puedes encontrar muchas referencias al respecto, pero verás también que hay opiniones diversas y hasta opuestas.

3.- He estado haciendo algunas pruebas creando tablas y luego de guardarlas quise modificar el tipo de datos (la tabla no contiene datos, esta vacía), por ejemplo de nchar a char y me muestra un error indicando que debo volver a crear la tabla, esto se debe a que falta alguna configuración? o es que SQL 2008 no permite realizar este tipo de modificaciones?
 
Ese es un error que sale en Management Studio cuando quieres cambiar una tabla. Lo que debes hacer para que no aparezca es lo siguiente:
 
a. En el menú Herramientas escoger la opción "Opciones..."
b. En el recuadro de la izquierda, escoger la opción "Diseñadores de tablas y Bases de Datos"
c. Desmarcar la opción "Impedir Guardar Cambios que requieran volver a crear tablas"
d. Hacer clic en aceptar

 

Lo que también puedes hacer es utilizar comandos Transact SQL:

ALTER TABLE MiTabla ALTER COLUMN MiCampo char(100)  
aderossi
Posts:23

12/08/2010 06:38 PM  

- Que es un Cluster y que significa eso de 16nodos de Enterprise y 2 nodos de la Standard
Un cluster es una forma de agrupar varios computadores para que trabajen como uno solo. Cuando hablamos de un cluster de SQL server, estamos hablando de que el Servidor de Base de Datos, en vez de ser un solo computador, son varios computadores trabajando en conjunto. A cada computador de un cluster se le llama nodo. En la Edición Estándar solo podemos usar un cluter de dos nodos y en la Edición entreprise de 2 a 8 nodos con sistema operativo de 32 bits y hasta 16 nodos con sistema operativo de 64 bits. En este link puedes ampliar el concepto de cluster: http://es.wikipedia.org/wiki/Cluster_(inform%C3%A1tica)
 
 
Sobre las Licencias se SQL Server
- Licencia de procesador
- Servidor mas CAL de dispositivo
- Servidor mas CAL de usuario
¿que es CAL?
CAL es Client Access License. Es la licencia por cada conexión que se va a realizar un cliente hacia el servidor de base de datos. Cuando tienes un licenciamiento por procesador, no es necesario adquirir CAL por que los accesos de clientes son ilimitados. Pero si usas licencias de Servidor mas CAL, debes tener una licencia por cada conexión hacia el servidor de base de datos: En este link encontrará más información: http://blogs.technet.com/b/ccaitpro/archive/2010/05/06/aprendiendo-sobre-licenciamiento-licenciamiento-de-sql-server.aspx
 
¿Que es Instalación desatendida?
Cuando estamos instalando SQL Server, es necesario "atender" la instalación para ingresar información de configuración, como por ejemplo: El nombre de la instancia, la ubicación física de archivos, la cuenta del servicio, las opciones que deseo instalar, etc. Una instalación desatendida es aquella en la que utilizo un archivo de texto en las que están escritas todas las opciones antes mencionadas, de modo que no tengo que estar sentado frente al servidor para ingresarlas manualmente, si no que el instalador las lee del archivo de texto mensionado. En este link encontrarás más información (en inglés): http://technet.microsoft.com/es-es/library/ms144259.aspx
 
¿Usuarios Concurrentes.?
Usuarios concurrentes son los usuarios que están utilizando la base de datos al mismo tiempo, es decir, su conexiones concurren en un mismo momento en el tiempo. Cuando uno compra licencias, se recomienda comprar licencias solo para el numero de usuarios concurrentes. Es decir, el numero de usuarios que esta conectado a SQL Server al mismo tiempo. Ejemplo, en una organización hay 50 personas que se conectan a una base de datos en diferentes momentos del día, pero al mismo tiempo solo se conectan 35. Entonces será necesario adquirir 35 licencias de SQL Server.

aderossi
Posts:23

13/08/2010 12:51 PM  

COMPATIBILIDAD HACIA ATRAS (Backward Compatibility)

Cada vez que se libera una nueva versión de SQL Server, se mantiene compatibilidad con las tres última versiones. Es decir, las sentencias que ya no se usan, se mantienen en la nueva versión solo para efectos de compatibilidad con las versiones anteriores. Entonces, las versiones SQL Server 2008 y SQL Server 2008 R2 son compatibles con SQL Server 2005 y SQL Server 2000. Microsoft ha estado liberando una nueva versión de SQL Server cada tres años (2005, 2008) por lo que la siguiente versión debería salir en el 2011. Pero teniendo en cuenta que acaba de liberar la versión 2008 R2, probablemente la siguiente versión tarde un poco más. En todo caso, esa siguiente versión será compatible con las versiones 2005 y 2008/2008 R2, ya no con SQL Server 2000. En este link encontrarán todas las sentencias que ya no serán soportadas en la siguiente versión de SQL Server y que no deben ser utilizadas en presentes o futuros desarrollos: http://msdn.microsoft.com/en-us/library/ms143729.aspx

En las versiones 2008/2008 R2 el uso de estas sentencias puede ser monitoreado a través de nuevos contadores de performance utilizando el Reliability and Performance Monitor. Si queremos conocer cuales son los contadores, podemos ejecutar el siguente query (ojo, solo en SQL 2008/2008 R2)

select

* from sys.dm_os_performance_counters WHERE object_name like '%deprecated%'La mayoría de estas sentencias desestimadas (deprecated) no se usan con frecuencia, pero si hay un grupo que debemos considerar. Por ejemplo, en la siguiente versión ya no se soportarán los tipos de datos TEXT, NTEXT e IMAGE. Ahora hay que usar varchar(max), nvarchar(max) o varbinary(max).

 

Saludos

Alberto  

aderossi
Posts:23

13/08/2010 12:52 PM  
Hay un problema en el post anterior y el query se ha movido. la sentencia correcta es:


select * from sys.dm_os_performance_counters WHERE object_name like '%deprecated%
You are not authorized to post a reply.



ActiveForums 3.7
        
Copyright 2001-2012 MUGPERU   Terms Of Use  Privacy Statement