Buscar en el Blog

jueves, 20 de septiembre de 2012

¿Que son los indices en una base de datos?


INDICES EN SQL SERVER
¿Para qué sirven los índices?
Para mejorar la performance de una consulta.
Es una buena practica, incluso indispensable, tener un índice en las claves primarias, pero no es exclusivo de estas, también se puede tener en cualquier columna de una tabla  de la BD.
Si una tabla no tiene ningún índice creado, SQL Server tratará la tabla como un HEAP.  Un heap es una estructura de datos que almacena la posición física en la que se almacenó cada nueva fila dentro de las páginas asignadas a la tabla.

¿Es lo mismo una clave primaria que un índice?
Una clave primaria puede estar compuesta por más de un campo. Por ejemplo, si tomamos una tabla de empleos, podemos distribuirla ordenada por departamentos, y dentro de cada departamento por niveles. Hacemos clave primaria ambos campos (departamento-nivel) de manera que se podrá repetir departamento, o nivel, pero no se podrá repetir el conjunto de un departamento y un nivel.
La principal diferencia entre un índice y una clave primaria es la repetición de valores. En una clave primaria no pueden repetirse y en un índice si podrían.
Una clave primaria es un campo o varios que identifican cada registro de la base de manera unívoca, es decir, sin posibilidad de confusión.
Un índice es un campo o varios por los que se pueden "ordenar" los registros de manera que acceder a uno concreto es más rápido.

¿Cómo es que un índice puede mejorar la performance de una consulta?
Fácil, los índices ordenan los registros de una tabla, esta ordenación finalmente permite acceder a los registros de manera más rápida, pues se llega más rápido al lugar donde se encuentra la información requerida, ya que estos índices funcionan de similar manera a los índices de un libro.
La recomendación es usar índices sobre las columnas que participan en la cláusula WHERE de una consulta.
Una tabla puede tener un índice clusterado y 249 índices no clusterados. Con lo que da como resultado un total de 250 índices.

Hay dos tipos de índices (en SQL Server):

Índices Agrupados (CLUSTERED).
Ordenan físicamente las filas de una tabla.
Cualquier tabla puede tener ninguno o un índice agrupado (CLUSTERED). Los índices agrupados son la propia tabla, es decir, cuando creamos un índice agrupado sobre una tabla, estamos convirtiendo a la propia tabla en un índice, lo cual tiene varias implicaciones.
A efectos de rendimiento, es importante tener en cuenta, que una tabla con un índice agrupado se almacenará de forma ordenada, lo cual, facilitará la satisfacción de consultas con cláusulas ORDER BY o GROUP BY coincidentes con los campos del índice, por poner un ejemplo representativo.

Índices No Agrupados (NONCLUSTERED).
Se trata de estructuras ajenas a la propia tabla, que consumen su propio almacenamiento. Esto permite, que la tabla se pueda almacenar sobre un Grupo de Ficheros (File Group) y los índices no agrupados sobre un Grupo de Fichero diferente. Es posible crear índices no agrupados, sobre tablas sin índices y sobre tablas con índices (incluso aunque tenga un índice agrupado).

Los índices No Agrupados, suelen ser especialmente efectivos para satisfacer cláusulas WHERE sobre los campos del índice que devuelven un conjunto muy pequeño de registros. También son muy apropiados para satisfacer consultas cuyos campos están todos incluidos en el índice (de este modo, no es necesario acceder a la tabla, pues toda la información está en el índice).

Recuerda que un índice puede estar conformado por varias columnas.
Un índice no es lo mismo que una clave primaria

TRANSACT/SQL BASICO video 2

Creando y relacionando tablas con transact/sql





domingo, 16 de septiembre de 2012

¿Archivos ocultos en tu memoria USB?

¿Archivos ocultos en tu memoria USB?

A quien no le ha pasado que cuando revisan su memoria USB, sus archivos no estan. No se les ocurrar formatear su memoria, sus archivos no han sido eliminados, solo estan ocultos.

para poder visualizar sus archivos vamos a realizar la siguiente operacion(esto es algo simple y esta desde hace mucho tiempo en la red).

  1. Nos vamos a inicio y seleccionamos ejecutar o simplemente tecla de Windows + R
  2. escribimos cmd
  3. En la ventana colocamos el nombre de la unidad con la que aparece la memoria USB. Por ejemplo E: (con esto nos posicionamos en la unidad E:\)
  4.  Luego colocamos la siguiente linea de comandos attrib -a -s -h -r /s /d

Con esto solo queda esperar a que termine de procesar el comando.





Otra opcion es crear un archivo bat con un script como el que a continuacion se muestra:

@echo off
color 20
echo ########################
echo ## Hecho por Lexblas  ##
echo ## lexblas@gmail.com  ##
echo ##Trujillo - Peru 2012##
echo ########################
echo Ingrese la letra de la unidad
set /P unidad=
%unidad%:
echo aplicando los atributos
echo Espere a que termine...
attrib -a -s -h -r /s /d
del /f *.inf
echo Terminado!!


Copian el codigo en el block de nota y lo guardan con extension .bat y listo!! solo ingresaran la letra de la unidad de USB y el script hara el resto.



miércoles, 5 de septiembre de 2012

SQLiteStudio: gestor de base de datos SQLite

SQLiteStudio 

SQLiteStudio es un gestor de base de datos SQLite con las siguientes características:

  •  Archivo ejecutable único - no hay necesidad de instalar o desinstalar. Distribución binaria es sólo el único archivo, listo para usar.
    Interfaz intuitiva
  • Todos SQLite3 y SQLite2 funciones envueltas en GUI simple
    Multiplataforma - funciona en Windows 9x/2k/XP/2003/Vista/7, Linux, MacOS X, Solaris, FreeBSD y debería funcionar en otros sistemas Unix (no probado aún).
    Localizaciones, actualmente traducidos al: inglés, polaco, español, alemán, ruso, japonés, italiano, holandés, chino
  • Exportar a varios formatos (sentencias SQL, CSV, HTML, XML),
    Numerosas pequeñas adiciones, como el código de formato, la historia de las consultas ejecutadas en el editor de ventanas, en la marcha de comprobación de sintaxis, y más,
    UTF-8.
 


Pagina oficial : http://sqlitestudio.one.pl/