SQL Server数据库性能插入或更新单个或多个表

时间:2015-06-23 12:06:23

标签: c# sql sql-server-2014

我正在开发一个小型应用程序,它在SQL Server数据库中包含大约50万行。

这些行包含产品的详细信息,这些产品具有唯一的条形码,需要在发货前进行扫描。

每当用户使用我的应用程序扫描产品上的条形码时,记录会更新,例如用户扫描的详细信息,扫描时间和扫描标记会在表格中更新。

我的数据库中有两个表。用户详细信息和产品详细信息,包含条形码值和用户详细信息。

我使用C#命令执行SQL更新命令。

问题是多个用户一次访问该表并影响性能。

我想知道是否应该使用SQL更新或将用户详细信息插入到新表中。哪个会更快?

用户可以看到扫描详细信息,例如每小时的计数,每个产品的扫描计数。完成和未决计数产品明智。

验证,如果没有再次扫描相同的条形码或条形码无效。

请建议数据结构以获得更好的性能。

用于更新的代码:

            using (SqlConnection connection = new SqlConnection(connectString))
        using (SqlCommand command = connection.CreateCommand())
        {
            command.CommandText = "update [DispatchData] set [Scan]=@scan,[ScanBy]=@scanBy,[ScanTime]=getdate() where [RunningSequence]=@runSeq";

            command.Parameters.AddWithValue("@scan", "Y");
            command.Parameters.AddWithValue("@ScanBy", username_form);
            command.Parameters.AddWithValue("@runSeq", textBox2.Text);
            connection.Open();
            command.ExecuteNonQuery();
            listView2.Items.Add(listView1.Items[0].Text);
            listView1.Items[0].Remove();
            connection.Close();
        }

表格格式

CREATE TABLE [dbo].[DispatchData](
[srno] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[RefNo] [nvarchar](50) NOT NULL,
[RunningSequence] [nvarchar](50) NOT NULL,
[FileName] [nvarchar](500) NOT NULL,
[ActNo] [nvarchar](50) NOT NULL,
[imp] [numeric](18, 0) NOT NULL,
[CustId] [nvarchar](50) NOT NULL,
[CustPhone] [nvarchar](50) NULL,
[CustFax] [nvarchar](50) NOT NULL,
[CustName] [nvarchar](150) NOT NULL,
[Add1] [nvarchar](150) NULL,
[Add2] [nvarchar](150) NULL,
[Add3] [nvarchar](150) NULL,
[City] [nvarchar](50) NULL,
[State] [nvarchar](50) NULL,
[Country] [nvarchar](50) NULL,
[Pincode] [nvarchar](50) NULL,
[BrCode] [nvarchar](50) NOT NULL,
[BrCat] [nvarchar](50) NOT NULL,
[ActType] [nvarchar](50) NOT NULL,
[DispatchMode] [nvarchar](50) NULL,
[QC] [char](1) NOT NULL CONSTRAINT [DF_DispatchData_QC]  DEFAULT ((0)),
[UserName] [nvarchar](50) NOT NULL,
[misFileName] [nvarchar](200) NOT NULL,
[Scan] [char](1) NOT NULL CONSTRAINT [DF_DispatchData_Scan]  DEFAULT ('N'),
[ScanBy] [nvarchar](50) NULL,
[ScanTime] [datetime] NULL,
[Dscan] [char](1) NULL CONSTRAINT [DF_DispatchData_DispatchScan]  DEFAULT ('N'),
[DscanBy] [nvarchar](50) NULL,
[DscanTime] [datetime] NULL,
[manualUpdate] [char](1) NULL CONSTRAINT [DF_DispatchData_manualUpdate]  DEFAULT ('"N'''),

CONSTRAINT [PK_DispatchData] PRIMARY KEY CLUSTERED (     [RunningSequence] ASC )WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY] )[主要]

GO

0 个答案:

没有答案