标签: partitioning

查询性能问题

使用 Demo from here重现我的问题,更改表结构如下,并将演示分区函数修改为 datetime

CREATE TABLE [dbo].[DemoPartitionedTable](
    [DemoID] [int] IDENTITY(1,1) NOT NULL,
    [SomeData] [sysname] NOT NULL,
    [CaptureDate] [datetime] NULL,
 CONSTRAINT [PK_DemoPartitionedTable] UNIQUE NONCLUSTERED 
(
    [DemoID] ASC,
    [CaptureDate] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
Run Code Online (Sandbox Code Playgroud)

用户运行如下查询(查询 1)

SELECT [DemoID], [SomeData], [CaptureDate] FROM    
[dbo].[DemoPartitionedTable] WHERE (1=1) and (1=1) and    
CONVERT(varchar(10),CaptureDate,112) between 20190912 and 20190912
Run Code Online (Sandbox Code Playgroud)

计划是https://www.brentozar.com/pastetheplan/?id=r1veZhovH

大约需要 4 小时才能返回 500 万行

如果我使用如下分区键来改进上面的代码(查询 2)

 SELECT [DemoID], [SomeData], [CaptureDate] FROM …
Run Code Online (Sandbox Code Playgroud)

performance sql-server partitioning sql-server-2012 query-performance performance-tuning

-1
推荐指数
1
解决办法
143
查看次数

订购分区表的最佳方式是什么?

从分区表中获取有序数据的最有效方法是什么?

我有这样的疑问:

SELECT TOP (4000)
*
FROM dbo.MS
ORDER BY MANDT
, MBLNR
, MJAHR
, ZEILE
Run Code Online (Sandbox Code Playgroud)

表按 MBLNR 分区。

执行计划:https://www.brentozar.com/pastetheplan/? id=Bkhv5g5EF

是否有任何选项可以从执行计划中删除排序?

建表语句:

CREATE TABLE [dbo].[MS]
(
    [MANDT] [NVARCHAR](3) NOT NULL
    , [MBLNR] [NVARCHAR](10) NOT NULL
    , [MJAHR] [NVARCHAR](4) NOT NULL
    , [ZEILE] [NVARCHAR](4) NOT NULL
    , [LINE_ID] [NVARCHAR](6) NOT NULL
    , [PARENT_ID] [NVARCHAR](6) NOT NULL
    , [LINE_DEPTH] [NVARCHAR](2) NOT NULL
    , [MAA_URZEI] [NVARCHAR](4) NOT NULL
    , [BWART] [NVARCHAR](3) NOT NULL
    , [XAUTO] [NVARCHAR](1) NOT NULL
    , [MATNR] …
Run Code Online (Sandbox Code Playgroud)

order-by partitioning sql-server-2016

-2
推荐指数
1
解决办法
739
查看次数

如果我从具有(大量记录)的表中删除现有的分区方案/函数会发生什么?

我有几个关于分区的问题。我打算将现有的分区方案/函数放入table1,然后将新的分区方案/函数指向table1. 我知道如何继续这个过程,但在此之前,我想对以下问题提出一些建议/答案:

  1. 如果我删除旧的/现有的分区方案/功能以及表中的数据,旧partition.ndf文件中的数据会发生什么?它们会被删除或修改吗?

  2. 如果我删除旧的/现有的分区方案/功能,表中有数据,表中的数据会发生什么?会不会有记录丢失?

sql-server partitioning sql-server-2016

-4
推荐指数
1
解决办法
5754
查看次数

sql 数据库中的数据大小可以小于索引大小吗?

SQL Server 表上的索引是否可以比表本身消耗更多的磁盘空间?

我已经阅读了几篇文章并研究了这个和一些专家推荐的表分区,例如,这个 MSDN 论坛问题

为什么和索引可以比实际数据更大?

如何减小索引大小?

在这种情况下如何识别不必要的索引?

index sql-server partitioning sql-server-2014

-4
推荐指数
1
解决办法
1617
查看次数