Geeks•ms
Todo lo que los geeks de Windows y .Net tienen que contar
Juega a la Cura, código de registro: laresistencia

Freddy Angarita

  • [Code] Nueva versión crear tabla a partir de un texto separado por comas (CSV)

    En un artículo anterior, [Code] Crear una tabla a partir de un texto separado por comas (CSV) , se presentó cómo realizar ésta tarea de la manera más simple, ahora, se complementará ésta solución presentando una alternativa que usa CTEs para realizar el trabajo recursivo de analizar las palabras en la sentencia Usando la capacida de las expresiones CTEs de crear iteraciones se permite la creación de la iteración consigo mismo,...
  • [Code] Cómo convertir un número a letras

    Lo primero que se debe advertir antes de poner el código a disposición de todos, es que no recomiendo esta aproximación de manera práctica dado que SQL está optimizado para cálculos basados en conjuntos (Selects, Joins y demás); manejo de cadenas y cálculos se deberían hacer de otras maneras (CLR, Código Ciente, etc.), pero si alguna vez se necesita o si se quiere traducir a otro lenguaje se puede usar el siguiente código...
  • [Code] Llenado de Espacio en Datos (Generación de Datos Acumulados) por Grupos

    Llenado de Espacio en Datos (Generación de Datos Acumulados) por Grupos Normalmente los productos de software llevan un registro de los hechos que se Fsentan en el negocio, ventas, desembolsos, cobros, intereses, etc. Pero por supuesto no todos los días se vende, se desembolsa, se cobra initereses, cómo podemos resolver de una eficiente la necesidad ver los datos acumulados, este escenario, por lo meno de manera parcial, fué resuelto en un artículo anterior [Code...
  • [Code] Conteo de Filas de cada una de las tablas de la base de datos

    Conteo de Filas de cada tabla Haciendo diagnóstico de las bases de datos, realizando seguimientos al crecimiento del número de registros y en fin para conocer el número de registros en todas las tablas existen varias técnicas pero existen unas mejores que otras y a contiuación se presentarán: Una de las aproximaciones es usar uno de los procedimientos almacenados más prácticas que tiene TSql sp_MSforeachtable la cual nos permite ejecutar algún...
  • [Code] Pivote dinámico con sql server

    Pivotes Dinámicos En muchas ocaciones tenemos información en filas y queremos convertirlas en columnas, ésto se presenta especialmente en escenarios de análisis en donde tener la información en colunas es un requerimiento. Revisemos el ejemplo que presenta MSDN en su documentación Si tenemos una consulta: USE AdventureWorks2008R2 ; GO SELECT DaysToManufacture, AVG(StandardCost) AS AverageCost FROM Production.Product GROUP BY DaysToManufacture; La cual arroja...
  • [Code] Calcular Edad a cualquier fecha

    Este problema normalmente se soluciona del lado del cliente (Reporte, Aplicación) pero algunas ocaciones necesitamos presentarlo en algunas consultas por lo que la siguiente función puede ser práctica en varios escenarios Tomemos como ejemplo las siguientes fechas (obsérvese especialmente la última fecha que muestra el número de día siguiente, diez años) y veamos cómo las funciones tradicionales muestran la diferencia en años,...
  • [Code] Cómo numerar filas en SSIS

    Numerar Filas puede ser de gran ayuda para crear lógica en SSIS, para generarlas se pueden seguir los siguientes pasos Agregar un DataFLow Task Agregar un Origen de datos con una consulta a la que le queramos generar los números de fila Agregar un Script Component Agregar una Columna de Salida Llamada (para el ejemplo) Numero , con un código similar al presentado a continuación: public class ScriptMain : UserComponent { private int _RowNumber = 0; public override void...
  • [Info] Contadores de Rendimiento para diagnóstico y afinación de SqlServer

    A continuación presento alguno de los contadores de rendimiento, pertenecientes a la instrumentación de SqlServer que ayudan al proceso de diagnóstico y optimización de SqlServer En el gráfico se presenta el grupo de contadores de rendimiento, luego al abrirlo se presenta cada contador independiente y luego en la parte de abajo (si aplica) que es lo q se quiere medir Procesador Processor Esperado %User Time SqlServer se ejecuta en modo de Usuario. El modo privilegiado...
  • [Code] Cómo detectar los grupos de archivos que tiene cada tabla en la base de datos

    En el artículo en el artículo de optimización de consultas se menciona como uno de los procesos de optimización, la asignación de grupos de archivos a diferentes tables para utilizar mejor el hardware del servidor y hacer de las consultas un proceso mas veloz, para determinar cual son las tablas que son candidatas para pasarlas a otros grupos de archivos podemos usar: select si . rows as 'ConteoFilas' , SO . Name as 'Tabla' , SI . name as 'Nombre...
  • [Code] Cómo consultar los registros no asociados con otros registros de la misma tabla

    Detectar si un determinado usuario tiene o no autorización para realizar alguna tarea, detectar cuales de los ítems no ha sido asociados a él es tan solo algunas de las aplicaciones para éste artículo. Como primera instancia tenemos una tabla de ejemplo, que se genera usando: declare @t1 table ( id int , VALOR CHAR ( 1 )) insert into @t1 values ( 1 , 'A' ) insert into @t1 values ( 2 , 'B' ) insert into @t1 values ( 3 , 'C' ) insert into ...
  • [Code] Como crear el esquema de un archivo Raw SSIS

    Importar grandes volúmenes de datos puede tomar mucho tiempo en SSIS si no se hace de la manera apropiada, y una de las principales técnicas para lograr este propósito es el uso de archivos Raw (Crudos), los cuales son archivos binarios de altísimo rendimiento que por sus características permiten leer y escribir datos a alta velocidad haciéndolos ideales para ser el paso intermedio entre el origen y el destino de los datos (Stage). Para usarlos, sin embargo...
  • [Code] Cómo Obtener los últimos Identity (Autonumérico) Insertados

    Siempre buscando la optimización de consultas debemos intentar siempre el uso de operaciones de conjunto sobre las operaciones fila a fila, éste es uno de los ejemplos en donde usando T-Sql podemos obtener los últimos IDs generados a partir de la inserción en una las tablas que tienen Identity, DECLARE @output TABLE (id int) --Tabla para capturar los IDs generados Insert into A (fname, lname) -- Tabla en la que insertaremos los datos OUTPUT inserted.ID INTO @output --Captura...
  • [Code] Optimización de Consultas Parte 3 - Recompilación de procedimientos Almacenados

    Cada vez que se ejecuta un procedimiento almacenado en SqlServer por primera vez, se optimiza y su plan de ejecución se compila y se almacena en el caché de SqlServer. Cada vez que el procedimiento almacenado se ejecuta luego de ser almacenado en el caché, usará el mismo plan de ejecución, eliminando la necesidad de compilar y de almacenar el plan de ejecución de dicho procedimiento cada vez que se ejecuta. Si éste procedimiento se ejecuta 1000 o más...
  • [Info] Optimización de Consultas Parte 1 - Generalidades

    En la siguientegráfica se presenta el esquema de ejecución de consultas en SqlServer From y Join 1. Usar Hints Podemos utilizar hints de consultas tales como (nolock) sobre las tablas que queremos consultar para cambiar el modo de acceso de readcommited a readuncommited --ADVERTENCIA: Utilizar este hint puede traer problemas de datos, tales como lecturas sucias o registros fantasma. El uso de hints debe realizarse con especial cuidado y teniendo en mente las consecuencias de los mismos...
  • [Code] Optimización de Consultas Parte 2 - Anti Semi joins

    Como todos los temas de optimización las soluciones presentadas en éste artículo deben probarse, intentar varias alternativas y luego decidir dependiendo de los resultados y especialmente de la evolución de los datos, es decir, dependiendo del momento del ciclo de vida de la base de datos tendremos cierto uso de la información (por ejemplo durante procesos de migración) y luego tendremos otro tipo (en Producción, cuando cierto tipo de producto salga...
  • [Code] Crear una tabla a partir de un texto separado por comas (CSV)

    Ahora con la aparición de los parámetros tipo tabla en SqlServer, se elimina la necesidad de crear parametros complejos o de trucos para enviar información hacia los procedimientos almacenados, pero para quienes no quieren enviar esta información, crear los tipos de datos que se requieren para recibir los parámetros tipo tabla, presento una alternativa para ello en varias aproximaciones Función de usuario para la generación de Tablas --USO: select...
  • [Code] Cómo generar N Filas Rápido Sql Server

    Como siempre, una de las cosas que mas se necesita al crear un procedimiento es generar un número de determinado de filas para poderlas combinar con alguna otra tabla, ésta técnica presenta cómo crear una tabla que cuente de un número a otro, en incrementos de mánera eficiente LA PRIMERA APROXIMACIÓN declare @StartNumber int, @Nrows int, @increment int set @StartNumber = 1 set @Nrows = 1000000 set @increment = 1 ---- declare @q table (i int) declare...
  • [Code] Cómo calcular un total acumulado Rápido SIN Cursores

    Una de las cosas que nos lleva a usar cursores es el cálculo de totales acumulados, así que usando una de las caraterísticas no muy documentadas de SQL podemos realizar éste trabajo con poco esfuerzo y de una manera rápida y efectiva --DBCC DROPCLEANBUFFERS -- Limpia caché de datos SOLO SE UTILIZA PARA COMPARAR CON OTRAS IMPLEMENTACIONES ELIMNAR EN AMBIENTE DE PRODUCCIÓN --DBCC FREEPROCCACHE -- Limipia el caché de procedimientos SOLO SE UTILIZA...
  • [Info] Presentación Introducción a Minería de Datos

    Saludos, Publico la presentación introductoria de Minería de Datos, Datos de importancia sobre el Algoritmo Time Series y Algunas recomendaciones para optimizar las consultas SQL Server FREDDY ANGARITA Sql Server MVP
  • [WebCast][Code] Generando imágenes (códigos de Barras) en Reporting Services Parte 2

    Saludos, Una de las principales características de Reporting Services e Integration Services de Microsoft es la habilidad de agregrar codigo .Net en diferentes puntos de los items de la solución En éste video veremos cómo generar una imágen dinámicamente directamente dentro de un reporte, en éste caso un código de barras, sin la necesidad de agregar ningún código de terceros, ni de agregar assemblies de otros proveedores, sólo...
Juega a la Cura, código de registro: laresistencia