`

分区视图

 
阅读更多

 
分区视图是提高查询性能的一个很好的办法


--看下面的示例

--示例表
create table tempdb.dbo.t_10(
id
int primary key check(id between 1 and 10),name varchar(10))

create table pubs.dbo.t_20(
id
int primary key check(id between 11 and 20),name varchar(10))

create table northwind.dbo.t_30(
id
int primary key check(id between 21 and 30),name varchar(10))
go

--分区视图
create view v_t
as
select * from tempdb.dbo.t_10
union all
select * from pubs.dbo.t_20
union all
select * from northwind.dbo.t_30
go

--插入数据
insert v_t select 1 ,'aa'
union  all select 2 ,'bb'
union  all select 11,'cc'
union  all select 12,'dd'
union  all select 21,'ee'
union  all select 22,'ff'

--更新数据
update v_t set name=name+'_更新' where right(id,1)=1

--删除测试
delete from v_t where right(id,1)=2

--显示结果
select * from v_t
go

--删除测试
drop table northwind.dbo.t_30,pubs.dbo.t_20,tempdb.dbo.t_10
drop view v_t

/**//*--测试结果

id          name     
----------- ----------
1          aa_更新
11          cc_更新
21          ee_更新

(所影响的行数为 3 行)
==
*/


八、 树型的实现


--参考

--树形数据查询示例
--
作者: 邹建

--示例数据
create table [tb]([id] int identity(1,1),[pid] int,name varchar(20))
insert [tb] select 0,'中国'
union  all  select 0,'美国'
union  all  select 0,'加拿大'
union  all  select 1,'北京'
union  all  select 1,'上海'
union  all  select 1,'江苏'
union  all  select 6,'苏州'
union  all  select 7,'常熟'
union  all  select 6,'南京'
union  all  select 6,'无锡'
union  all  select 2,'纽约'
union  all  select 2,'旧金山'
go

--查询指定id的所有子
create function f_cid(
@id int
)
returns @re table([id] int,[level] int)
as
begin
declare @l int
set @l=0
insert @re select @id,@l
while @@rowcount>0
begin
 
set @l=@l+1
 
insert @re select a.[id],@l
 
from [tb] a,@re b
 
where a.[pid]=b.[id] and b.[level]=@l-1
end
/**//**//**//*--如果只显示最明细的子(下面没有子),则加上这个删除
delete a from @re a
where exists(
  select 1 from [tb] where [pid]=a.[id])
--
*/
return
end
go

--调用(查询所有的子)
select a.*,层次=b.[level] from [tb] a,f_cid(2)b where a.[id]=b.[id]
go

--删除测试
drop table [tb]
drop function f_cid
go

分享到:
评论

相关推荐

    SQL Server分布式分区视图分解数据表

    分布式分区视图是SQL Server提供的一种高级数据管理技术,它允许跨越多个数据库或服务器的数据集在逻辑上被视为单一实体。这种技术特别适用于处理大规模数据,尤其是进行水平分区时,能够提高查询性能,优化数据分布...

    分区表和分区视图.docx

    【分区表和分区视图】是数据库管理系统中用于管理和优化大规模数据的一种技术,尤其是在SQL Server 2000中得到了广泛应用。分区表是将一个大表按照特定的策略(通常是根据某个或某些列的值)划分为多个较小的、独立...

    分区表和分区视图.pdf

    【分区表和分区视图】是数据库管理系统中用于管理和优化大数据量存储及查询的重要技术,尤其是在分布式数据库系统中。在SQL Server 2000中,这两种机制被用来提升性能和扩展性,使得大规模的数据处理成为可能。 ...

    SQL server 2000 分区表和分区视图.docx

    SQL Server 2000 的分区表和分区视图是针对大数据量管理和性能优化的重要工具。分区表允许将一个大表的数据分散到多个物理表中,每个表负责一部分数据,以此来提高查询效率和管理效率。分区视图则进一步提供了一个...

    SQL server 2000 分区表和分区视图.pdf

    SQL Server 2000 的分区表和分区视图是针对大数据量管理和查询优化的重要特性。分区技术的主要目的是提高大规模数据库的性能和可管理性,它通过将数据水平分割到不同的物理存储单元(即成员表),使得数据操作更加...

    浅析SQL Server 2000分布式分区视图.pdf

    分布式分区视图是SQL Server数据库中的一个重要特性,它通过分布式查询技术允许用户访问跨越多个服务器的水平分区数据。在SQL Server 2000中,微软对分布式分区视图的功能进行了进一步的改进,使其能够直接通过视图...

    SQL Server2000分布式分区视图应用研究.pdf

    分区视图分为本地分区视图和分布式分区视图两种,其中本地分区视图的数据和视图都在同一个服务器上,而分布式分区视图的数据至少分布在一个远程数据库服务器群集中。 无共享群集技术的应用是分布式分区视图实现的...

    表分区及物化视图

    orace表分区及物化视图 进一步了解oracle表分区技术及物化视图技术应用

    sqlserver2005表分区

    【SQL Server 2005 表分区】 分区表是SQL Server 2005提供的一种高级数据管理技术,主要用于优化大规模数据表的性能。当你的数据库中存在数据量巨大且查询频繁的表时,分区表能够显著提升查询效率,降低维护成本。...

    物化视图迁移分区

    ### 物化视图迁移分区知识点详解 #### 一、物化视图概念与作用 在数据库技术中,物化视图(Materialized View)是一种预先计算并存储查询结果的数据对象,它通常用于提高复杂查询的性能。通过定期更新物化视图中的...

    chap06 视图.pdf

    可以进一步细分为本地分区视图和分布式分区视图,以及可更新分区视图和只读视图。 #### 3. 视图操作 - **创建视图**:创建视图有两种常见方法,一是使用SQL Server Management Studio (SSMS),二是使用T-SQL语句。 ...

    sql server视图的作用本篇文章.doc

    7. **分区视图**:在大型数据库系统中,可以通过视图实现数据的分区,将数据分布在多个服务器或数据库实例上,提高查询性能并实现负载均衡。分区视图使用UNION运算符将各个部分的数据合并成一个整体视图,提供统一的...

    SQL Server 2005分区表技术的研究与实现.pdf

    而从SQL Server 2000开始,增加了对分区视图的数据修改支持,并改善了查询性能。SQL Server 2005进一步提升了分区性能,并简化了分区的管理、开发和使用。 分区的实现步骤主要包含以下几个阶段: 1. 确定分区键和...

    视图的创建与使用汇总PPT学习教案.pptx

    标准视图是最基本的,而索引视图通过预计算和存储数据来提高查询性能,分区视图则用于处理大型数据集,将数据分成逻辑部分。 创建视图时需注意几点,如创建者需要相应的权限,视图名必须遵循标识符规则且在当前...

    SQLServer2008数据库基础入门教程含思考题练习题 第10章 视图 共25页.ppt

    分区视图则允许跨越多个服务器或表的分区数据,为用户呈现单一的逻辑表。 创建视图主要使用`CREATE VIEW`语句,该语句需要指定视图的名称,并且包含一个SELECT语句来定义视图的数据源。例如,可以创建一个基于两个...

    sql2005表的分区

    通过使用适当的分区视图,查询优化器可以根据条件筛选出相应的月份,仅访问相关月份的数据表,如`SalesJanuary2003`,而无需遍历整个年度数据,从而显著提高查询效率。 #### 三、SQL Server 2005的分区功能增强 **...

    MicrosoftSQLServer中的关系型数据仓库分区策略

    在早期版本的SQL Server中,分区主要通过分区视图实现,这需要使用特殊的查询语法,并且功能相对有限。分区视图允许将大型表逻辑上分为多个部分,但物理上仍然作为一个整体。 **SQL Server 2005 及以后版本的分区...

    网站编程中SQL SERVER视图的应用.pdf

    3. 分区视图:分区视图将多个表中的数据进行水平分区,使得数据看起来像来自一个表。分区视图可以分布在多台服务器上,也可以在同一SQL Server实例中的多个表之间建立。 创建视图的语法与MySQL类似,也是使用CREATE...

    SQL视图学习文档

    2. **分区视图**:可以在不同服务器之间分发数据,提高可伸缩性和可用性。 3. **检查视图**:可以定义检查条件,用于限制通过视图进行的更新操作。 4. **合并视图**:将多个表的数据合并到一个视图中,方便查询。 5....

Global site tag (gtag.js) - Google Analytics