martes, 10 de diciembre de 2013

sqlserver REINDEX and UPDATESTATS


Para reindexar y actualizar estadisticas de sql server



USE MyDatabase
GO
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"
GO
EXEC sp_updatestats
GO

domingo, 24 de noviembre de 2013

Paginado en SqlServer

Segun vi en muchos foros, la mejor forma de paginar es la siguiente:


SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

viernes, 17 de mayo de 2013

Try catch en sql server (con transacciones)

Una buena idea para ejecutar consultas que podrian tirar error y automaticamente revertirlas en caso de que fallen (generalmente usado cuando estan dentro de un bucle) es utilizar un TRY CATCH en SQL.

La forma de utilizarlo va como el siguiente ejemplo:


BEGIN TRAN

BEGIN TRY

--EJECUCION CON POSIBLE ERROR
Print '> Se hace una ejecucion'

--CUANDO TERMINE DE EJECUTAR TODO:

COMMIT TRAN

END TRY

BEGIN CATCH

ROLLBACK TRAN

END CATCH


Espero que les sea util.
Slds.

viernes, 12 de abril de 2013

Como conocer las conexiones abiertas a SqlServer


Si llegado al caso tienen la necesidad de conocer cuales son las conexiones abiertas hacia un SQLSERVER, pueden obtener informacion de estas 3 maneras:

(Siempre desde Sql Management Studio)


Ejecutar:

EXEC SP_WHO 

Devuelve un listado simple de todas las conexiones y su estado actual.


EXEC SP_WHO2

Devuelve un listado completo de todas las conexiones y su estado actual.



Y mi preferido, si necesitan conocer cual base de datos se esta llevando mas conexiones, pueden ejecutar este query:


SELECT 
    DB_NAME(dbid) [Database]
    , COUNT(dbid) Connections
    , loginame as Username
    
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame
ORDER BY Connections desc
   


Espero que les sirva.

Saludos.

domingo, 10 de febrero de 2013

[Solved] TF255418: An error occurred while attempting to configure Internet Information Services (IIS). Team Foundation Server requires IIS. You will need to configure IIS manually per the documentation before attempting to configure Team Foundation Server again.

Esto me ha pasado en Windows 7 Home Premium:



Si al iniciar Team Foundation Server, se les exige realizar la configuración inicial, y en los pasos previos de configuración reciben un mensaje como el siguiente:



Lo mas probable es que tengan alguno de los siguientes problemas (o todos estos problemas):

1) No tienen instalado Internet Information Services.
 
   Panel de control > Activar caracteristicas de Windows > Internet Information Services:
   De ser posible, activen todas las opciones para no tener otros problemas.
   Sino sigan este link

 
2) Tienen instalado IIS, pero fue instalado DESPUES de instalar Net Framework.

   Suelen ocurrir varios problemas si se instala IIS despues de instalar el Net. Framework, con lo cual recomiendo que vuelvan a correr el instalador para asegurarse que IIS se actualize con los cambios que podria recibir con dicho instalador.


3) Configurar la Autenticacion en IIS (siempre y cuando se aseguren que los otros pasos esten OK)

a. Ingresar en el administrador de sql server, hacer click en el nodo de la pc (servidor) actual para que despliegue sus opciones.

b. Ingresar en la opcion llamada AUTENTICACION.




c. Al abrir dicha opcion, debemos activar la siguiente caracteristica:




d. Una vez habilitada, deberán reiniciar IIS de cualquiera de las siguientes formas:

   i. Abrir una consola: en ejecutar escribir CMD.
   ii. Escribir IISRESET.




Si luego de todos estos pasos, la instalacion de TFS sigue pasando, deberia considerar instalar las actualizaciones de windows.


Espero que les sirva.