<Date: 2009-09-12>
<Author: medcl>
<Category: 数据库>
使用关系代数合并数据
1 关系代数
合并数据集合的理论基础是关系代数,它是由E.F.Codd于1970年提出的。
在关系代数的形式化语言中:
用表、或者数据集合表示关系或者实体。
用行表示元组。
用列表示属性。
关系代数包含以下8个关系运算符
选取――返回满足指定条件的行。
投影――从数据集合中返回指定的列。
笛卡尔积――是关系的乘法,它将分别来自两个数据集合中的行以所有可能的方式进行组合。
阅读这篇文章的其余部分 »
本文来自: 关系代数、各种join的区别[转]
<Date: 2009-07-14>
<Author: medcl>
<Category: SQL Server>
--查询数据库或表的空间分配情况
use IOneDatabase
exec sp_spaceused --查询数据库中的空间分配情况
exec sp_spaceused N'app_image' --查看表的空间占用情况
---------------------------------------------------------------------------
if exists (select * from sysobjects where id = object_id(N'[dbo].[s_SpaceUsed]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[s_SpaceUsed]
GO
Create procedure s_SpaceUsed
@SourceDB varchar(128)
as
/*
exec s_SpaceUsed 'mydb'
*/
set nocount on
declare @sql varchar(128)
create table #tables(name varchar(128))
select @sql = 'insert #tables select TABLE_NAME from ' + @SourceDB + '.INFORMATION_SCHEMA.TABLES where TABLE_TYPE = ''BASE TABLE'''
exec (@sql)
create table #SpaceUsed (name varchar(128), rows varchar(11), reserved varchar(18), data varchar(18), index_size varchar(18), unused varchar(18))
declare @name varchar(128)
select @name = ''
while exists (select * from #tables where name > @name)
begin
select @name = min(name) from #tables where name > @name
select @sql = 'exec ' + @SourceDB + '..sp_executesql N''insert #SpaceUsed exec sp_spaceused ' + @name + ''''
exec (@sql)
end
select * from #SpaceUsed
drop table #tables
drop table #SpaceUsed
go
------------------------------------
exec s_SpaceUsed 'IOneDatabase'
Reference:http://msdn.microsoft.com/en-us/library/ms188776.aspx
http://www.nigelrivett.net/SQLAdmin/SpaceUsedAllTables.html
本文来自: 查看数据库或表的空间占用情况