Trong Change Data Capture (CDC), tại sao lsn được sử dụng thay vì dấu thời gian?


7

Tôi đang học cách sử dụng CDC trong máy chủ SQL 2008, tôi đã đọc rằng LSN luôn được tăng lên và dựa trên dấu thời gian, vậy tại sao LSN lại được yêu cầu, nếu nó được tính từ dấu thời gian có thể được sử dụng id chuỗi tăng dần cho các thay đổi được thực hiện. Tôi chắc chắn rằng sẽ có một số mục đích khác cũng như lsn.


1
Hãy xem câu trả lời của tôi ở đây để đọc thêm.
Jon Seigel

Câu trả lời:


11

Giá trị ngày / giờ thường không được coi là đủ duy nhất. Cho dù bạn định nghĩa nó tốt đến đâu, có thể có 2 hành động xảy ra cho cùng một giá trị datetime.

Trước SQL Server 2008, giá trị chính xác nhất là một vòng 3,33 mili giây được làm tròn datetimethực sự là vĩnh cửu. datetime2phân giải đến 100 nano giây cũng không đủ chính xác.

Từ một góc nhìn khác, thời gian là một con số thực sự . Cho dù bạn lưu trữ thời gian chính xác đến mức nào, luôn có một số làm tròn theo mức độ phân giải của bạn (Trong trường hợp này là 3,33 ms hoặc 100 ns)

Sử dụng LSN (nghĩa là numeric (25,0)) mang lại giá trị số nguyên rõ ràng tăng đơn điệu rõ ràng. Nó là một số tự nhiên


2
Hầu hết các RDBMS đều làm như vậy - ví dụ, Oracle sử dụng số thay đổi hệ thống (SCN).
Phil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.