模糊標題我知道。刪除Azure架構或刪除行需要很長時間
我的數據庫中有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
上午我做錯了什麼或只是認爲這是大數據,我是急什麼?
UPDATE:
刪除整個數據庫採取了一些25秒。
將22,000行(大致相同的16,000以上)導入localdb\v11.0
需要6秒。我知道這是本地的,但本地開發服務器肯定比Azure慢?當然...
更新第二:
重新創建數據庫,並重新創建模式(帶(流利)NHibernate的),然後將約20,000行耗時2分6秒。所有單元測試通過。 有什麼我可以做的回頭看?
16000元相對較小,刪除不那麼長時間。這是你的整個SQL腳本嗎?你有沒有額外的腳本創建一些觸發器?你的數據也是什麼數據庫? – Tom
就是這樣。 沒有別的,那些是由SSMS本身生成的腳本。這是Windows Azure上的Web實例,但仍然是, 什麼是我的數據庫?根據Azure數據庫管理器,這僅僅是文本,沒有關係,它是16MB(儘管報告了25,600行,其中SSMS報告了16,000)。 –
看起來很奇怪,下降會花費這麼長時間。如果你只是想要它完成,你可以嘗試先做一個TRUNCATE,然後是DROP。但是我仍然想知道爲什麼DROP需要這麼長時間以防止出現另一個問題。 –