Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como sql server

Varchar o nvarchar, ese era el dilema

SQL Server dispone de varios tipos de datos, cada tipo de datos nos va servir para almacenar un dato que después podemos convertir en información, pero hay dos tipos de datos que generan dudas entre desarrolladores : VARCHAR y NVARCHAR: ¿Cuál es la diferencia entre ambos tipos de datos? VARCHAR  es una abreviatura de cadena de caracteres de longitud variable (del inglés VARiable CHARacter). Puede almacenar una cadena de caracteres que puede ser tan grande como el tamaño de página de la tabla. El tamaño de una página de una tabla en SQL Server es 8.196 bytes, ninguna fila de una tabla en SQL Server puede ser más de 8.060 caracteres.  Esto a su vez limita el tamaño máximo de un VARCHAR a 8.000 bytes . NVARCHAR  significa «casi» lo mismo, con la diferencia que se puede almacenar datos en formato unicode, de ahí proviene la N (uNicode). ¿Y para que sirve almacenar datos en Unicode? Si la columna donde almacenamos el texto es Unicode quiere decir que no tendremos problemas par...

Hora Militar o Formato 24 Horas en SQL SERVER

Es curioso los problemas que nos encontramos a diario al desarrollar, siempre resulta que hay algo nuevo y algo que no sabemos, aprendemos día a día con cada cosa que hacemos, y cada código que escribimos. El día de hoy les traigo una instrucción que si bien es muy sencilla, puede ahorrarnos varias horas de búsqueda infructuosa en san google. Se trata de convertir una hora en sql server al formato militar o formato de 24 horas. Para esto tenemos varias formas: SELECT CONVERT(VARCHAR(8), dateadd(HOUR,12, cast('2017-01-01 10:15:00' as datetime)), 108) AS HoraMilitar Veamos lo que se hace en la instrucción anterior: Tenemos la fecha y hora: 2017-01-01 10:15:00 la cual convertimos a datetime cast('2017-01-01 10:15:00' as datetime) luego le sumamos 12 horas para ejemplificar el ejercicio "dateadd(HOUR,12," y por ultimo pasamos a varchar para darle formato militar CONVERT(VARCHAR(8), "Aquí la fecha",108) Notese que uso el código 108 de con...

Diferencias entre Char, Varchar, NChar y NVarchar en SQL Server

¿Cuál es la diferencia entre estos, y cuán importante es la diferencia? Char y NChar   Cuando se configura un campo de tipo Char o NChar estamos indicando campos de tamaño fijo. Es Decir, si configuramos una tabla de la siguiente forma Campo1 Char(10), Campo2 NChar(10)   La diferencia entre Char y NChar es el soporte a carácteres Unicode (los carácteres Unicode ocupan más de 1 byte) . Por este motivo a la hora de almacenar algún valor, en el Campo1 siempre ocupará 10 bytes y en el Campo2 20 Bytes. Varchar y Nvarchar VARCHAR es la abreviación de variable-length character string.    Es una cadena de caracteres de texto que puede ser tan grande como el tamaño de página para la tabla de la base de datos. Los campos de tipo Varchar o NVarchar son de almacenamiento variable .  El tamaño almacenado dependerá del valor que se quiere guardar, el número de caracteres sólo configura el tamaño máximo que este campo puede almacenar.  Conf...

Monitorear el rendimiento de SQL SERVER

SQL Server Profiler ·          Muestra como SQL Server resuelve las queries internamente ·          Permite a los administradores ver como se ven las sentencias T-SQL  y como el servidor regresa los resultados. ·          Se puede: o    Crear una traza basado en Templates o    Verificar los resultados de la traza o    Almacenar los resultados de la traza en un archivo o tabla ·          Capturar datos enviados al servidor que permite al programador verificar errores o datos incorrectos. Windows System Monitor ·          Monitorear el uso de recursos. ·          System Monitor también llamado Performance Monitor. ·          Comparando SQL Server Prof...

Optimizador de Querys: SQL SERVER

Dirán que soy intenso con el tema de SQL SERVER y optimizacion de la base de datos, pero es algo tan importante como el desarrollo de la aplicacion misma, ya que si esto falla, podremos tener muchos problemas con la funcionalidad y el rendimiento de nuestra aplicacion (a menos que no utilice base de datos). Por esta razón insisto tanto en que tengamos vigilados cada una de las áreas de la base de datos y en este post les traigo un libro buenisiiiiimo que se llama " Inside the SQL Server Query Optimizer " y fue escrito por Benjamin Nevarez . El libro esta en ingles y es muy bueno para optimizacion de querys. Descarguenlo Aquí. Espero que lo disfruten, compartan y comenten. ;) "Si se puede imaginar... se puede programar."

Características descontinuadas en SQL Server 2012

Con la llegada de SQL Server 2012, la mayoría de los desarrolladores que día a día tenemos que convivir con el motor de base de datos, así como aquellos DBA’s (Administradores de Bases de Datos), nos hacemos la pregunta de si una versión actual soportará características anteriores de versiones como 2005 o 2008. Todo cambio tecnológico tiene su riesgo, y no obstante con las versiones de SQL Server. A continuación les comparto las características que ya no tendrán disponibles en la versión 2012. Active Directory Helper Service: Los componentes que han sido removidos dentro de la parte de directorio activo son: sp_ActiveDirectory_Obj, sp_ActiveDirectory_SCP y sp_ActiveDirectory_Start. Es importante señalar que no se encuentra ninguna característica en SQL Server 2012 que sustituya a los componentes anteriormente comentados. En el caso de Reporting Services en SQL Server de 64 bits, cabe mencionar que desde la versión SQL Server 2008 R2, el componente ya no admitía s...

Mejores practicas: SQL SERVER

Siempre es bueno llevar un conocimiento básico de los estándares y mejores prácticas en desarrollo y bases de datos. A continuación les proporciono con una lista de “Best Practices” para SQL Server (Que aplican también para muchos otros DBMS):   1. No usar Select *. Siempre que se utiliza Select * todas las columnas en la tabla o unión se incluyen en el conjunto de resultados, así que el incluir todas las columnas aunque no sean necesarias provoca un exceso de entradas/salidas en el servidor y un consumo innecesario del ancho de banda de la red. 2. Siempre mandar llamar procedimientos almacenados. No hay que enviar declaraciones Select, Insert, Delete o Update a la base de datos; en vez de eso, siempre hay que llamar procedimientos almacenados pasándole los parámetros correspondientes. El motivo de esta mejor práctica es el siguiente: cuando SQL Server recibe una consulta, como una declaración Select, lo primero que hace es compilarla, crear un plan de ejecución...

Donde se gasta el tiempo de una consulta SQL SERVER?

Ahora parece un buen momento para familiarizarse con Extended Events, y puede usar los scripts de este artículo como un punto de partida práctico para aprender cómo funcionan y suministrar  funcionalidad administrativa muy útil al mismo tiempo. Como sucede con cada característica nueva, lleva tiempo y práctica aprender acerca de los Extended Events, ganar confianza con ellos y explorar cómo personalizarlos para que se adapten a nuestras necesidades. En general, mientras se procesa una consulta, puede estar en uno de dos estados: usando recursos de servidor o esperando por recursos de servidor. Utilice los Eventos Extendidos para ver dónde se gasta la mayor parte del tiempo de sus consultas . Son las palabras que leí en el libro que les traigo hoy, y a decir verdad me causo mucha curiosidad al punto que investigue todo lo que decía el libro y resulto ser muy practico e ilustrativo para las situaciones en que no sabemos porque una consulta se demora mucho o de vez en cuando s...

Rastreo de parametros con procedimientos almacenados de SQL SERVER

Los usuarios afirman que de repente la ejecución de un procedimiento almacenado es muy lenta. Sin embargo, cuando se ejecuta dentro de SSMS con los mismos parámetros, se ejecuta con rapidez. Además, los usuarios afirman que, para algunas combinaciones de parámetros,  el procedimiento almacenado funciona bien. Si estás en este escenario, están descubriendo el lado oscuro del rastreo de parámetros. ¿Qué es el rastreo de parámetros? Siempre que se invoca un procedimiento almacenado, el optimizador de consultas trata de volver a utilizar un plan de ejecución. Si existe un plan de ejecución coincidente en caché se reutiliza "a ciegas". Si no es así, se generará un nuevo plan. Durante la generación del plan, el optimizador analiza y optimiza todas las consultas en el procedimiento almacenado. Comprueba las posibilidades de generar físicamente un conjunto de resultados y considera varios factores: existencia de índices en las columnas que participa...

Encriptar y desencriptar columna en sql server y asp.net

Hola Csharpedianos, nevegando un poco por la red (como suelo hacerlo por 9 horas diarias de lunes a viernes) me encontre con algo muy interesante y que necesitaba por cierto y se trata de como encriptar y desencriptar una columna en sql server. Esto lo pueden utilizar para contraseñas, tarjetas de credito o lo que quieran. Les cuento que he copiado y pegado el post de la web cjorellana.net para ahorrarme lo de escribir, ademas de eso se trata este blog, compartir informacion. ;) Acá les proporciono un ejemplo de como crear una tabla de usuarios con el campo de Contraseña encriptado, luego veremos desde una pagina aspnet como podemos validar el usuario contra dicha tabla. 1.) Crear el master key /* Crea la key master */ USE northwind GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SQLAuthority' GO 2.) Crear el certificado de encriptacion /* Crea certificado de encriptacion */ CREATE CERTIFICATE EncryptTestCert WITH SUBJECT = 'SQLAuthority...