相关疑难解决方法(0)

加速无子句的巨大 DELETE FROM <table> 的方法

使用 SQL Server 2005。

我正在执行一个没有 where 子句的巨大 DELETE FROM。它基本上等同于 TRUNCATE TABLE 语句 - 除了我不允许使用 TRUNCATE。问题是表很大 - 1000 万行,需要一个多小时才能完成。有没有办法让它更快,没有:

  • 使用截断
  • 禁用或删除索引?

t-log 已经在一个单独的磁盘上。

欢迎任何建议!

performance sql-server delete

38
推荐指数
4
解决办法
8万
查看次数

表分区会加速我的查询吗?

我的数据库设置了我们所说的临时表和活动表。目前,我们有大约 200 万行用于名为 products 的表。我们称为制造商的客户将他们的数据加载到临时表中,当他们完成更新、添加、删除数据时,我们会将这些数据推送到我们的实时表中。

这些实时表格为移动应用程序和网站提供网络服务。将数据从 staging 推送到 live 包括删除 live 表中的所有数据和插入 staging 表中的所有数据。所有这些都由ManufacturerID存在于每个表中的一个名为的列分隔。

有些制造商有 500 种产品,有些制造商有 75,000 种产品。基于这一点,我们有时会因为对所有 200 万条记录进行分页而导致 Web 服务响应非常缓慢。从实时表中删除数据似乎也变得非常缓慢。

通过ManufacturerID帮助这种情况来分区我的产品表吗?从我读到的内容来看,这基本上意味着当我查询我的产品时,我只会查询数据库的一小部分,ManufacturerID因此整体响应时间有了巨大的改善。

sql-server partitioning sql-server-2012

6
推荐指数
1
解决办法
3021
查看次数

T-SQL:如何将所有分区从一个表切换到另一个?

是否可以在单个语句中将所有分区从一个分区表切换到一个临时表?

sql-server partitioning

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

如何删除表分区

我想从 SQL Server 2012 数据库中的表中删除分区。表有主键,但分区列不是主键。我还想保持数据结构和模式完好无损。

我试过:

select * 
into [dbo].[new_Non_partitioned_Table] 
from [dbo].[partitioned_table]
Run Code Online (Sandbox Code Playgroud)

然后我删除了分区表并重命名了新表。但是,它导致我丢失了数据结构和一些迫使我放弃约束的依赖项 (FK)。这是用于生产和数据丢失不是一种选择。

有没有更好的方法从现有表中删除分区?

sql-server partitioning sql-server-2012

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