jueves, 7 de mayo de 2015

PLAYING WITH DATABASES

OLAP

  •  
  •  
  •  
  • Print

Stands for "Online Analytical Processing." OLAP allows users to analyze database information from multiple database systems at one time. While relational databases are considered to be two-dimensional, OLAP data is multidimensional, meaning the information can be compared in many different ways. For example, a company might compare their computer sales in June with sales in July, then compare those results with the sales from another location, which might be stored in a different database.
In order to process database information using OLAP, an OLAP server is required to organize and compare the information. Clients can analyze different sets of data using functions built into the OLAP server. Some popular OLAP server software programs include Oracle Express Server and Hyperion Solutions Essbase. Because of its powerful data analysis capabilities, OLAP processing is often used for data mining, which aims to discover new relationships between different sets of data.
Microsoft SQL Server 2005 Analysis Services (SSAS) delivers online analytical processing (OLAP) and data mining functionality for business intelligence applications. Analysis Services supports OLAP by letting you design, create, and manage multidimensional structures that contain data aggregated from other data sources, such as relational databases. For data mining applications, Analysis Services lets you design, create, and visualize data mining models that are constructed from other data sources by using a wide variety of industry-standard data mining algorithms.

Re: How to delete rows in tables that contain foreign keys to other tables

Feb 21, 2012 10:29 AM|LINK
There are two ways to do this:
1. Programatically - First delete a record from a table with Primary Key and using the ID of this record, delete the records in a table with Foreign Key having the respective ID.
2. Using Relational Database - Create a relation between a table having Primary Key and a table having Foreign Key with Delete constrain. This will delete the records in Child Table if a record in a Parent Table has been deleted.
This query returns  two level below Constraints .
DECLARE @mytable VARCHAR(30) SET @mytable = 'Import'
DECLARE @Order int SET @Order = 0
DROP TABLE #TEMP
CREATE TABLE #TEMP ( TableName VARCHAR(50), OrderNo INT)
INSERT INTO #TEMP VALUES ( @mytable, @Order)
IF EXISTS(select TableName from #TEMP where OrderNo = @Order)
BEGIN
SET @Order= @Order+1;
INSERT INTO #TEMP
SELECT t1.TABLE_NAME AS PointsFrom, @Order
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t1
ON t1.CONSTRAINT_NAME = r.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t2
ON t2.CONSTRAINT_NAME = r.UNIQUE_CONSTRAINT_NAME
WHERE t2.table_name = @mytable
END
IF EXISTS(select TableName from #TEMP where OrderNo = @Order)
BEGIN
SET @Order= @Order+1;
INSERT INTO #TEMP
SELECT t1.TABLE_NAME AS PointsFrom, @Order
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t1
ON t1.CONSTRAINT_NAME = r.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t2
ON t2.CONSTRAINT_NAME = r.UNIQUE_CONSTRAINT_NAME
WHERE t2.table_name in (select TableName from #TEMP where OrderNo = (@Order-1))

END

Eliminar filas mediante DELETE

SQL Server 2008 R2
Personas que lo han encontrado útil: 4 de 11 Valorar este tema
La instrucción DELETE quita una o varias filas de una tabla o vista.
A continuación se expone una forma simplificada de la sintaxis de DELETE:
DELETE table_or_view
FROM table_sources
WHERE search_condition
El parámetro table_or_view indica la tabla o vista de la que se van a eliminar las filas. Se eliminarán todas las filas de table_or_view que reúnan los requisitos de la condición de búsqueda de la cláusula WHERE. Si no se especifica ninguna cláusula WHERE, se eliminarán todas las filas de table_or_view. La cláusula FROM especifica tablas o vistas y condiciones de combinación adicionales que los predicados de la condición de búsqueda de la cláusula WHERE pueden utilizar para calificar las filas que se eliminarán de table_or_view.. Las filas no se eliminan de las tablas mencionadas en la cláusula FROM, sólo de la tabla mencionada en table_or_view.
Las tablas de las que se quitan todas las filas permanecen en la base de datos. La instrucción DELETE sólo elimina filas de la tabla, pero la tabla en sí se debe quitar de la base de datos mediante la instrucción DROP TABLE.

Eliminar filas de un montón


Cuando se eliminan filas de un montón, Motor de base de datos puede usar el bloqueo de fila o de página para la operación. Como resultado, las páginas que pasan a estar vacías debido a la operación de eliminación siguen asignadas al montón. Si no se cancela la asignación de las páginas vacías, otros objetos de la base de datos no pueden volver a utilizar el espacio asociado.
Para eliminar las filas de un montón y cancelar la asignación de las páginas, use uno de los métodos siguientes.
  • Especifique la sugerencia TABLOCK en la instrucción DELETE. El uso de la sugerencia TABLOCK hace que la operación de eliminación use un bloqueo compartido de la tabla, en lugar de un bloqueo de fila o de página. Esto permite cancelar la asignación de las páginas. Para obtener más información acerca de la sugerencia TABLOCK, vea Sugerencias de tabla (Transact-SQL).
  • Use TRUNCATE TABLE si se van a eliminar todas las filas de la tabla.
  • Cree un índice agrupado en el montón antes de eliminar las filas. Puede quitar el índice agrupado después de eliminarlas. Para este método se requiere más tiempo que para los métodos anteriores y usa más recursos temporales.
Para obtener más información acerca del bloqueo, vea Bloquear el motor de base de datos.

No hay comentarios:

Publicar un comentario