删除Azure架构或删除行需要很长时间

时间:2013-01-10 10:08:18

标签: sql-server azure azure-sql-database

我知道模糊的标题。

目前,我的数据库中有16,000行。这是在开发过程中创建的,我现在要删除所有这些行,以便我可以重新开始(所以我没有重复的数据)。

数据库位于SQL Azure上。

如果我运行选择查询

SELECT [Guid]
  ,[IssueNumber]
  ,[Severity]
  ,[PainIndex]
  ,[Status]
  ,[Month]
  ,[Year]
  ,[DateCreated]
  ,[Region]
  ,[IncidentStart]
  ,[IncidentEnd]
  ,[SRCount]
  ,[AggravatingFactors]
  ,[AggravatingFactorDescription]
  FROM [dbo].[WeeklyGSFEntity]
GO

这将返回所有行,SSMS表示这需要49秒。

如果我试图放下桌子,这会持续5分钟。

DROP TABLE [dbo].[WeeklyGSFEntity]
GO

/****** Object:  Table [dbo].[WeeklyGSFEntity]    Script Date: 10/01/2013 09:46:18 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[WeeklyGSFEntity](
    [Guid] [uniqueidentifier] NOT NULL,
    [IssueNumber] [int] NULL,
    [Severity] [int] NULL,
    [PainIndex] [nchar](1) NULL,
    [Status] [nvarchar](255) NULL,
    [Month] [int] NULL,
    [Year] [int] NULL,
    [DateCreated] [datetime] NULL,
    [Region] [nvarchar](255) NULL,
    [IncidentStart] [datetime] NULL,
    [IncidentEnd] [datetime] NULL,
    [SRCount] [int] NULL,
    [AggravatingFactors] [nvarchar](255) NULL,
    [AggravatingFactorDescription] [nvarchar](max) NULL,
PRIMARY KEY CLUSTERED 
(
    [Guid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)

GO

如果我尝试删除每一行,这也需要5分钟。

DELETE
  FROM [dbo].[WeeklyGSFEntity]
GO

我做错了什么或只是这是数据并且我不耐烦了?

更新

删除整个数据库大约需要25秒。

localdb\v11.0中导入22,000行(大约相同的16,000多个)需要6秒。我知道这是本地的,但本地开发服务器肯定比Azure慢?当然...

更新第二个:

重新创建数据库并重新创建模式(使用(Fluent)NHibernate),然后插入大约20,000行需要2分6秒。所有单元测试都通过。 我有什么办法可以回顾一下吗?

2 个答案:

答案 0 :(得分:0)

删除并重新创建数据库大大加快了速度。

原因尚不清楚。

答案 1 :(得分:0)

可能存在导致表锁定的打开事务。这可能是因为我们在开发过程中取消了一半的操作。

执行sp_who2并查看哪个Id位于blkby列中。如果有的话就是它。

要杀死该过程,请执行kill id