4

私が知っている漠然としたタイトル。

現在、データベースには16,000行あります。これは開発中に作成されたものです。これらの行をすべて削除して、最初からやり直すことができるようにします(データが重複しないようにします)。

データベースはSQLAzure上にあります。

選択クエリを実行した場合

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秒かかりました。

22,000行(ほぼ同じ16,000行以上)をにインポートするlocaldb\v11.0のに6秒かかりました。これがローカルであることは知っていますが、確かにローカル開発サーバーはAzureよりも低速ですか?もちろん...

2番目を更新します。

データベースを再作成し、スキーマを((Fluent)NHibernateを使用して)再作成してから、約20,000行を挿入するのに2分6秒かかりました。すべてのユニットテストに合格します。振り返ってみることはありますか?

4

2 に答える 2

0

テーブルのロックを引き起こしているトランザクションが開いている可能性があります。これは、開発中に行うように操作を途中でキャンセルしたことが原因である可能性があります。

a を実行してsp_who2、どの Id が blkby 列にあるかを確認します。あるとすればそれです。

そのプロセスを強制終了するにはkill id

于 2017-06-14T05:31:46.800 に答える
0

データベースをドロップして再作成すると、処理速度が大幅に向上しました。

この理由は不明です。

于 2013-01-15T10:56:38.837 に答える