lựa chọn kiểu dữ liệu sysschedules


7

Tôi tò mò, tại sao SQL Server lưu các giá trị theo msdb.dbo.sysschedulesngày và thời gian intthay vì datetime. Tôi giả sử lý do bắt nguồn từ một cái gì đó trong SQL Server 2000.

Đó có phải là một vấn đề dung lượng lưu trữ, hiệu suất, hoặc khác?


Nó quay trở lại xa hơn IIRC, tới SQL 6.5 hoặc 7.0. Không biết tại sao mặc dù ...
gbn

Câu trả lời:


5

Bởi vì trước đây các điều khiển thiết kế lỏng lẻo hơn nhiều so với ngày nay và người chịu trách nhiệm thiết kế bảng này nghĩ rằng việc xử lý ints sẽ dễ dàng hơn so với các cột thời gian riêng biệt (hãy nhớ rằng đây là trước khi chúng tôi có dữ liệu ngày và giờ riêng biệt các loại và cả khi logic phổ biến là việc xử lý các số nguyên hiệu quả hơn nhiều so với chuỗi hoặc ngày). Tất cả chúng ta vẫn đang trả tiền cho sự lựa chọn thiết kế này. Tôi đã cố gắng tạo bảng của riêng mình, thay thế bảng hiện có bằng chế độ xem và xem tôi có thể phá vỡ bao nhiêu (không chắc là có thể không, nhưng nó sẽ làm cho bất kỳ mã hóa tùy chỉnh nào xung quanh Tác nhân bớt đau đớn hơn nhiều).

Không chắc chắn bạn sẽ theo dõi tại sao bây giờ, trừ khi bạn góc nhà phát triển đó và cho anh ấy hoặc cô ấy một trường hợp scotch. Có khả năng cùng một tâm lý đã dẫn đến hai cột SPID ở sp_who2đầu ra (câu chuyện có thật, hoặc tôi đã nói - nhà phát triển đã phát bệnh khi cuộn sang bên trái để xem SPID nào chịu trách nhiệm về các số liệu ở bên phải, vì vậy anh ta hoặc cô ấy đã thêm một mục khác ở cuối danh sách cột).


Thật đáng ngạc nhiên khi không có bất kỳ DMV nào bao gồm Đại lý. Tôi đoán rằng họ không muốn thêm nó ngay bây giờ cho các cấu trúc hiện có bởi vì họ có thể sẽ phải xé nó ra để thực hiện các công việc chứa cơ sở dữ liệu.
Jon Seigel
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.