当前位置: 首页 > news >正文

sql server 分区表查询


----查询是要指定的数据库下查询,否则查询不到信息
--查看是否是分区表
SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, *   
FROM sys.tables AS t   
JOIN sys.indexes AS i   
    ON t.[object_id] = i.[object_id]   
JOIN sys.partition_schemes ps   
    ON i.data_space_id = ps.data_space_id   
WHERE t.name = 'table_name';   
GO
--确定已分区表的边界值
SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName, 
    p.partition_number, p.partition_id, i.data_space_id, f.function_id, f.type_desc, 
    r.boundary_id, r.value AS BoundaryValue   
FROM sys.tables AS t  
JOIN sys.indexes AS i  
    ON t.object_id = i.object_id  
JOIN sys.partitions AS p  
    ON i.object_id = p.object_id AND i.index_id = p.index_id   
JOIN  sys.partition_schemes AS s   
    ON i.data_space_id = s.data_space_id  
JOIN sys.partition_functions AS f   
    ON s.function_id = f.function_id  
LEFT JOIN sys.partition_range_values AS r   
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
WHERE 
    t.name = 'table_name' 
    AND i.type <= 1  
ORDER BY SchemaName, t.name, i.name, p.partition_number;

--查看分区列
SELECT   
    t.[object_id] AS ObjectID
    , SCHEMA_NAME(t.schema_id) AS SchemaName
    , t.name AS TableName   
    , ic.column_id AS PartitioningColumnID   
    , c.name AS PartitioningColumnName
    , i.name as IndexName
FROM sys.tables AS t   
JOIN sys.indexes AS i   
    ON t.[object_id] = i.[object_id]   
    AND i.[type] <= 1 -- clustered index or a heap   
JOIN sys.partition_schemes AS ps   
    ON ps.data_space_id = i.data_space_id   
JOIN sys.index_columns AS ic   
    ON ic.[object_id] = i.[object_id]   
    AND ic.index_id = i.index_id   
    AND ic.partition_ordinal >= 1 -- because 0 = non-partitioning column   
JOIN sys.columns AS c   
    ON t.[object_id] = c.[object_id]   
    AND ic.column_id = c.column_id   
WHERE t.name = 'table_name';   
GO

---每个分区中可能的值范围的行

SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, i.name AS IndexName, 
    p.partition_number AS PartitionNumber, f.name AS PartitionFunctionName, p.rows AS Rows, rv.value AS BoundaryValue, 
CASE WHEN ISNULL(rv.value, rv2.value) IS NULL THEN 'N/A' 
ELSE
    CASE WHEN f.boundary_value_on_right = 0 AND rv2.value IS NULL THEN '>=' 
        WHEN f.boundary_value_on_right = 0 THEN '>' 
        ELSE '>=' 
    END + ' ' + ISNULL(CONVERT(varchar(64), rv2.value), 'Min Value') + ' ' + 
        CASE f.boundary_value_on_right WHEN 1 THEN 'and <' 
                ELSE 'and <=' END 
        + ' ' + ISNULL(CONVERT(varchar(64), rv.value), 'Max Value') 
END AS TextComparison
FROM sys.tables AS t  
JOIN sys.indexes AS i  
    ON t.object_id = i.object_id  
JOIN sys.partitions AS p  
    ON i.object_id = p.object_id AND i.index_id = p.index_id   
JOIN  sys.partition_schemes AS s   
    ON i.data_space_id = s.data_space_id  
JOIN sys.partition_functions AS f   
    ON s.function_id = f.function_id  
LEFT JOIN sys.partition_range_values AS r   
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
LEFT JOIN sys.partition_range_values AS rv
    ON f.function_id = rv.function_id
    AND p.partition_number = rv.boundary_id     
LEFT JOIN sys.partition_range_values AS rv2
    ON f.function_id = rv2.function_id
    AND p.partition_number - 1= rv2.boundary_id
WHERE 
    t.name = 'table_name'
    AND i.type <= 1 
ORDER BY t.name, p.partition_number;

参考:
 创建分区的表和索引 - SQL Server, Azure SQL Database, Azure SQL Managed Instance | Microsoft Learn

相关文章:

  • Android 12系统源码_窗口管理(八)WindowConfiguration的作用
  • springboot通过tomcat部署项目(包含jar、war两种方式,迄今为止全网最详细!2024更新..建议收藏,教学!万字长文!)
  • 二叉树的链式结构和递归程序的递归流程图
  • JavaScript substring() 方法
  • 关于循环Socket创建超Linux文件句柄限制现象分析
  • Etcd权限认证管理
  • HTML——基本标签
  • Basler 相机与LabVIEW进行集成
  • 便捷数据检索与下载,拟合曲线预测趋势 轻松管理多个项目,实现在线监测
  • Python和C++气候模型算法模型气候学模拟和统计学数据可视化及指标评估
  • SQLite的入门级项目学习记录(四)
  • SpringDataJPA基础增删改查
  • 解决内存8G但是需要读取一个几百G的文件到内存的方法
  • 学术界的利器:Zotero插件提升你的研究效率
  • 深入探究 Flask 的应用和请求上下文
  • 【深度学习】(1)--神经网络
  • leetcode:2124. 检查是否所有 A 都在 B 之前(python3解法)
  • 11 vue3之插槽全家桶
  • 云计算实训50——Kubernetes基础命令、常用指令
  • 205. 同构字符串-LeetCode(C++)
  • 山西临汾哪吒主题景区回应雕塑被指抄袭:造型由第三方公司设计
  • 巴方:印度上周导弹袭击造成至少40名平民死亡
  • 牛市早报|中方调整对美加征关税措施,五部门约谈外卖平台企业
  • 93岁南开退休教授陈生玺逝世,代表作《明清易代史独见》多次再版
  • 中美发布日内瓦经贸会谈联合声明达成关税共识,外交部回应
  • 上海与世界|环城生态公园带是上海绿色发展新名片