SQL Server 查看分区表(partition table)的分区范围(partition range)
https://www.cnblogs.com/chuncn/archive/2009/02/20/1395165.html
SQL Server 2005 的分区表(partition table)是复杂的,特别是对于初学者来说。不管怎样,我们还是掌握了分区函数(partition function),分区方案(partition scheme),最后终于创建了一个分区表出来。但之后呢,或许你想查看分区表的各个分区分区列的取值范围(这个分区的理论最小值和最大值),虽然可以通过分区函数中定义的边界值(boundary value)来推算出来分区表每个分区(partition)的取值范围,但是事情并不是很简单,你需要一系列繁琐的步骤来实现:首先要找出这个分区表的分区函数;然后确定该分区函数定义的边界值属于 left 或者 right; 最后在脑子里使劲思索几下终于确定了分区列取值范围(partition range)。幸运的是,有了下面的这个存储过程,你的大脑就可以获得解放了。
if exists (select 1 from sys.procedures where name = 'sp_show_partition_range')
drop procedure dbo.sp_show_partition_range
go --------------------------------------------------------------------------------
-- author : p.c.w.l
-- source : www.sqlstudy.com
-- create : 2008-01-01
-- descr : view partition range by 'partition table' or 'partition function'
-------------------------------------------------------------------------------- create procedure dbo.sp_show_partition_range
(
@partition_table nvarchar(255) = null
,@partition_function nvarchar(255) = null
)
as
begin
set nocount on declare @function_id int
set @function_id = null -- get @function_id base on @partition_table
if len(@partition_table) > 0 begin
select @function_id = s.function_id
from sys.indexes i
inner join sys.partition_schemes s
on i.data_space_id = s.data_space_id
where
-- i.index_id < 2 and
i.object_id = object_id(@partition_table) if @function_id is null
return 1
end -- get @function_id base on @partition_function
if len(@partition_function) > 0 begin
select @function_id = function_id
from sys.partition_functions
where name = @partition_function if @function_id is null
return 1
end -- get partition range
select partition_function = f.name
,t.partition
,t.minval
,value = case when f.boundary_value_on_right=1 then '<= val <' else '< val <=' end
,t.maxval
from (
select h.function_id
,partition = h.boundary_id
,minval = l.value
,maxval = h.value
from sys.partition_range_values h
left join sys.partition_range_values l
on h.function_id = l.function_id and h.boundary_id = l.boundary_id + 1 union all select function_id
,partition = max(boundary_id) + 1
,minval = max(value)
,maxval = null
from sys.partition_range_values
group by function_id
) t
inner join sys.partition_functions f
on t.function_id = f.function_id
where f.function_id = @function_id
or @function_id is null
order by 1, 2
end
go
SQL Server 查看分区表(partition table)的分区范围(partition range)的更多相关文章
- hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)
一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...
- SQL Server 2005 分区表实践——分区切换
本文演示了 SQL Server 2005 分区表分区切换的三种形式: 1. 切换分区表的一个分区到普通数据表中:Partition to Table: 2. 切换普通表数据到分区表的一个分区中:Ta ...
- SQL Server查看库、表占用空间大小
转自:https://blog.csdn.net/yenange/article/details/50493580 查询数据文件与日志文件占用情况,查看数据大小,查看库大小 1. 查看数据文件占用(权 ...
- SQL SERVER 查看mdf ldf文件路径
SQL SERVER 查看mdf ldf文件路径 select filename from sysfiles
- sql server 查看对象最后修改时间
sql server 查看对象最后修改时间,根据最后修改时间排序 存储过程 SELECT * FROM sys.all_objects WHERE TYPE='P' ORDER BY modify_ ...
- Sql Server 查看存储过程最后修改时间
Sql Server 查看存储过程最后修改时间 select * from sys.procedures order by modify_date desc
- SQL Server查看Sql语句执行的耗时和IO消耗
原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...
- sql server 小记——分区表(上)
我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆 分成很多小表,查询的时候就到各个小表去查,最后进行汇总返回给调用方来加速我们的查询速 ...
- sql server 小记——分区表
我们知道很多事情都存在一个分治的思想,同样的道理我们也可以用到数据表上,当一个表很大很大的时候,我们就会想到将表拆 分成很多小表,查询的时候就到各个小表去查,最后进行汇总返回给调用方来加速我们的查询速 ...
随机推荐
- MySQL 和 InnoDB
发现一篇总结的很不错的文章,转一下 (原文作者:Draveness 原文链接:https://draveness.me/mysql-innodb) 作为一名开发人员,在日常的工作中会难以避免地接触 ...
- javascript自我测试题
javascript自我测试题--14道题而已! 地址:http://perfectionkills.com/javascript-quiz/ 司徒正美的答案解析:http://www.cnblogs ...
- 洛谷【P2005】A/B Problem II
题目传送门:https://www.luogu.org/problemnew/show/P2005 高精除低精:https://www.cnblogs.com/AKMer/p/9724556.html ...
- 继承Application以实现全局资源共享
原文地址:http://www.cnblogs.com/Dentist/p/Mr_Dentist_.html 每个程序运行时会创建一个Application类的对象且仅有一个.在app结束时这个App ...
- Poj 1338 Ugly Numbers(数学推导)
一.题目大意 本题要求写出前1500个仅能被2,3,5整除的数. 二.题解 最初的想法是从1开始检验该数是否只能被2,3,5整除,方法是这样的,对于一个数,如果它能被2整除,就除以2,如果它能被3整除 ...
- Canal入门
配置mysql 1.mysql开启binlog mysql默认没有开启binlog,修改mysql的my.cnf文件,添加如下配置,注意binlog-format必须为row,因为binlog如果为S ...
- linux日常管理-sar工具
查看网卡瓶颈 查看网卡流量 默认10分钟一次 查看实时流量 每秒钟显示一次 显示5次 网卡有 lo eth0 主要看eth0外网 rxbyt/s 进网口和 txbyt/s出网口 带宽看txby ...
- Hadoop中Partition的定制
1.解析Partition Map的结果,会通过partition分发到Reducer上,Reducer做完Reduce操作后,通过OutputFormat,进行输出,下面我们就来分析参与这个过程的类 ...
- 4、linux-grep awk sed and cuf sort uniq join
1.grep 1.1 grep [-invc] [--color=auto] '搜寻字符串' filename选项与参数:-i :忽略大小写的不同-n :顺便输出行号-v :显示没有 '搜寻字符串' ...
- p1345 奶牛的电信Telecowmunication
传送门 题目 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a ...