Entradas populares

Mostrando entradas con la etiqueta sqlserver. Mostrar todas las entradas
Mostrando entradas con la etiqueta sqlserver. Mostrar todas las entradas

¿Como exportar datos de una base de datos con Excel?

En esta entrada os voy a explicar como exportar datos de una base de datos (en este caso de ORACLE) empleando Excel (la versión 2007). La gracia de esto es que después podemos importarla facilmente a otra base de datos diferente, y un fichero de Excel nos permite modificar el contenido del fichero con mucha facilidad....

Bueno vamos al lío, el procedimiento es muy sencillo

1- Deberemos configurar una conexión ODBC contra la base de datos, en nuestro caso ORACLE,para eso en Windows iremos a Herramientas Administrativas -> Orígenes de Datos (ODBC)


2- Dentro de ODBC, revisaremos que tenemos instalado el driver que vamos a utilizar para conectarnos a la Base de Datos, en este ejemplo utilizaremos el driver que se llama Oracle in ora92 que hemos instalado previamente.

3- Seguidamente abriremos el Excel (la versión de Excel que empleo en este caso es la 2007), y le diremos que queremos emplear un origen de datos externo. Para eso iremos a la pestaña de Datos -> Otras fuentes -> Desde Microsoft Query como vemos en la captura de pantalla.

4- Ahora aparecerá la siguiente ventana en la seleccionaremos nuevo origen de datos (el recuadro en rojo.

5- Ahora deberemos introducir el nombre de la conexion que estamos creando (el que vosotros queráis), y el driver de conexión que vamos a emplear, como ya hemos dicho antes emplearemos Oracle in ORA92


6- Ahora daremos al botón de conectar, y nos aparecerá una nueva ventana en la que se nos pedirá introduzcamos el, Service Name de la base de datos de Oracle, un USUARIO y PASSWORD. Recordad que este usuario tiene que tener permisos para poder hacer consultas a la base de datos de la cual queremos exportar datos.


7 - Y ahora nos aparecerá una nueva pantalla en la que ya podremos ver las tablas de nuestra base de datos, seleccionaremos una tabla cualquiera...


8- Si clicamos en la tabla podremos ver las columnas de la misma


9 - Y si clicamos en la flecha señalada con el recuadro rojo de esta ventana añadiremos todas las columnas a la consulta.




10 - En la siguiente pantalla, seleccionaremos la opcion Ver Datos o Modificar en Microsoft Query


11- Una vez hecho esto se nos abrira, el Microsoft Query, en el que podremos ver los datos de la tabla, y los campos de la misma...y si ahora clicamos en el boton con el recuadro rojo en el que pone SQL


12- Ahora es cuando viene lo bueno, se nos abrirá una ventana en la que podemos ver la select que se esta ejecutando y modificarla a nuestro gusto. En a captura de pantalla ya veis que esto es una SELECT de las toda la vida... IMPORTANTE: RECORDAD QUE COMO ESTAMOS ATACANDO A UNA BBDD ORACLE EL T-SQL DEBE SER EL DE ORACLE.

13- Una vez hayamos modificado la consulta a nuestro gusto y quisieramos que nos devolviera los datos a Excel, simplemente iríamos a Archivo -> Devolver datos a Microsoft Excel


14- Se nos abrirá el Excel con la siguiente ventana, a la que daremos a aceptar.


15- Una vez realizados todos estos pasos se nos abrira el excel y nos devolverá los datos de la consulta que hayamos modificado


Y amigos el tener los datos en Excel nos da infinidad de posibilidades a la hora de tratar los datos, ya sea para importar este fichero directamente a otra base de datos, transformarlo en otro tipo de fichero... en fin todo lo que se nos pueda ocurrir....

Que lo paséis bien exportando datos....

Mejorar rendimiento SQLSERVER // Improve SQLSERVER performance



Buenos vamos a ello, la primera entrada de verdad. Como ya dije hare algunos artículos para la gente más técnica, y que me imagino a alguno ayudaran. Son de esas cosas que a uno le cuesta encontrar por internet, y que son bastante útiles.

En este articulo voy a copiar un script que ayudará a toda aquella gente que es administrador de sqlserver o que ha desarollado aplicaciones para SQLSERVER. Este script en T-SQL hace los siguiente:
  1. Busca todos los indices de la BBDD en la que se ejecute el script
  2. Mira el estado de fragmentación de los Indices
  3. Si el indice está fragmentado menos o igual de un 10% no hace nada
  4. Si el indice en cuestión está fragmentado de un 10% - 30% lo reindexa
  5. Si el indice tiene un estado de fragmentación mayor a un 30% lo reconstruye
Una vez ejecutado el script notareis un mejora importante en el rendmiento de vuestras bases de datos y vuestras aplicaciones.

(El script es la parte en rojo)
--------------------------------------------

Well lets go, honestly this is the first article. As I told, I will blog some technical entries, that I suppose that will help somebody (or at least this is my intention). Things that are difficult to find in the Web, but they are really useful.

This article is about a T-SQL script for SQLSERVER that will help database administrator, or even the people who have an application running on a SQLSERVER database. This T-SQL scripts do the following:

  1. Find all the indexes on the selected database
  2. Check the state of fragmentation of the indexes
  3. If the index is fragmented equal o below 10% makes nothing
  4. It the fragmentation of the index is between 10% - 30% it will be reindexed
  5. If the fragmentation of the index is above 30% it will be rebuild
Once you do this you will notice a dramatically improvement in the database and your application.

(The script is the part in RED)
-----------------------------------------------


USE --DATABASENAME
SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname nvarchar(130);
DECLARE @objectname nvarchar(130);
DECLARE @indexname nvarchar(130);
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command nvarchar(4000);
-- Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function
-- and convert object and index IDs to names.
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
INTO #work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;

-- Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;

-- Open the cursor.
OPEN partitions;

-- Loop through the partitions.
WHILE (1=1)
BEGIN;
FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag;
IF @@FETCH_STATUS <>
SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;
SELECT @indexname = QUOTENAME(name)
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;
SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;

-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding.
IF @frag <>
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE';
IF @frag >= 30.0
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD';
IF @partitioncount > 1
SET @command = @command + N' PARTITION=' + CAST(@partitionnum AS nvarchar(10));
EXEC (@command);
PRINT N'Executed: ' + @command;
END;

-- Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;

-- Drop the temporary table.
DROP TABLE #work_to_do;
GO