Tôi có bảng sau trong cơ sở dữ liệu SQL Server 2008 của mình:
CREATE TABLE [dbo].[SomeTable]
(
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Column1] [varchar](30) NOT NULL,
[Column2] [varchar](30) NOT NULL,
[Column3] [varchar](50) NOT NULL,
CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
)
Một quy trình chèn dữ liệu vào bảng này, một quy trình khác đọc tất cả dữ liệu từ bảng này. Cả hai quá trình làm việc đồng thời.
one process:
INSERT INTO dbo.SomeTable VALUES ('col1', 'col2', 'col3')
another process:
SELECT Id, Column1, Column2, Column3 FROM dbo.SomeTable
Tôi thấy truy vấn thứ hai thực hiện quét toàn bộ bảng, nhưng tôi cần lấy tất cả dữ liệu từ bảng này để xử lý thêm (nó sẽ không phải là một bảng rất lớn, vì nó sẽ được làm sạch định kỳ. Nó sẽ chứa các hàng 1K-2K ).
Có cách nào để đảm bảo rằng những bế tắc sẽ không bao giờ xảy ra đối với hai truy vấn này không?