Entradas

Mostrando entradas de mayo, 2013
Imagen
En SQL Server 2000 hasta SQL Server 2012, se manejó el concepto de bases de datos multidimensionales en lo que se llama Analysis Services. Desde SQL Server 2012, se maneja el concepto de Modelos Tabulares. Este es un nuevo concepto que está revolucionando los proyectos de Business Intelligence. El artículo que mencionamos a continuación es para gente que ya utiliza bases de datos multidimensionales, pero desea Migrar a modelos Tabulares. Ventajas del modelo Tabular : Mucho más veloz en consultas. No requiere generar Aggregations (agregaciones) por lo que se simplifica el tiempo de procesamiento. DAX tiene mayor flexibilidad para obtener información. Es mucho más rápido y fácil de entender e implementar. Se basa en modelos relacionales.

Vistas de administración dinámica (DMV) para monitorizar un modelo tabular

Imagen
Las vistas de administración dinámica (DMV) de Analysis Services son estructuras de consulta que muestran información sobre las operaciones y el estado del servidor. En la mayor parte de las consultas DMV, se usa una instrucción SELECT y el esquema $system, y   devuelven información sobre el estado del servidor actual en el momento en que se ejecutó la consulta. Por ejemplo la vista DISCOVER_OBJECT_MEMORY_USAGE p roporciona información sobre los recursos de memoria utilizados por los objetos.

Ordenación automática en Excel

Imagen
Aunque Microsoft Excel ofrece la posibilidad de ordenar datos por una o varias columnas mediante la opción Datos-Ordenar , esta no es la opción más elegante ya que al cambiar los valores debemos volver a seleccionar el rango que queremos ordenar y aplicar de nuevo la ordenación. Excel también nos permite realizar una ordenación de forma automática independientemente de como vayan variando los valores del rango con el que estemos trabajando a través de la función K.ESIMO . Por ejemplo, a partir de una columna en la cual tenemos los datos desordenados y creamos otras dos columnas con las funciones K.ESIMO.MENOR y K.ESIMO.MAYOR en las que nos devolverá el resultado ordenado de menor a mayor y mayor a menor respectivamente de la siguiente forma: K.ESIMO Haced la prueba. Si cambiamos un valor en la columna B, los datos se ordenaran de menor a mayor en la columna C y de mayor a menor en la columna D. =K.ESIMO.MAYOR($B$5:$B25;FILA()-4) En la formula le indicamos

Administración de Oracle

Imagen
Recopilación de consultas SQL útiles para el administrador de Oracle: Estado de la base de datos select * from v$instance Parámetros generales de Oracle select * from v$system_parameter Versión de Oracle select value from v$system_parameter where name = 'compatible' Ubicación y nombre del fichero spfile select value from v$system_parameter where name = 'spfile' Ubicación y número de ficheros de control select value from v$system_parameter where name = 'control_files' Nombre de la base de datos select value from v$system_parameter where name = 'db_name' Conexiones actuales a la Base de Datos: select osuser, username, machine, program from v$session order by osuser Diccionario de datos (incluye todas las vistas y tablas de la Base de Datos) select * from dictionary Tablas propiedad del usuario actual select * from user_tables Todos los objetos propiedad del usuario conectado a Oracle selec

Funciones Analíticas en Oracle II

Imagen
Hoy nos toca ver la función CUBE. La función CUBE es una ampliación de la función ROLLUP y nos permite obtener subtotales por todos los campos indicados en la función. La sintaxis es la siguiente: Group by cube (campo1, campo2) Volviendo al ejemplo que habíamos usado con la función rollup en el que suponíamos una tabla de DEPARTAMENTOS donde se recogen las distintas áreas departamentales de nuestra empresa y otra tabla de EMPLEADOS donde recoge toda la información de los trabajadores, su rango salarial, sueldo bruto y departamento al que pertenece.  Usando la opción cube, en este caso, podemos ver que el resultado difiere con respecto al uso de la función rollup: select d.departamento, e.rango, sum(e.sueldo_bruto) as total from departamentos d, empleados e where d.id_departamento=e.id_empleado group by ROLLUP (d.departamento, e.rango) order by 1, 2; Lo cambiamos ahora por la función CUBE: select d.departamento, e.r