Về hiệu suất SQL.Làm thế nào tôi nên sử dụng BIT trong SQL Server 2005
Tôi có hàm vô hướng có giá trị để kiểm tra một số điều kiện cụ thể trong cơ sở, nó trả về giá trị BIT cho True hoặc False.
Tôi hiện không biết cách điền thông số @BIT
Nếu tôi viết.
set @bit = convert(bit,1)
hoặc
set @bit = 1
hoặc
set @bit='true'
chức năng sẽ làm việc anyway nhưng tôi không biết đó là phương pháp được khuyến khích sử dụng hàng ngày.
Một câu hỏi khác, tôi có bảng trong cơ sở của mình với khoảng 4 triệu bản ghi, chèn hàng ngày là khoảng 4K bản ghi trong bảng đó.
Bây giờ tôi muốn thêm CONSTRAINT vào đó bảng với hàm vô hướng có giá trị mà tôi đã đề cập
Something như thế này
ALTER TABLE fin_stavke
ADD CONSTRAINT fin_stavke_knjizenje CHECK (dbo.fn_ado_chk_fin(id)=convert(bit,1))
nơi "id" là chìa khóa chính của bảng fin_stavke và dbo.fn_ado_chk_fin trông giống như
create FUNCTION fn_ado_chk_fin
(
@stavka_id int
)
RETURNS bit
AS
BEGIN
declare @bit bit
if exists (select * from fin_stavke where [email protected]_id and doc_id is null and protocol_id is null)
begin
set @bit=0
end
else
begin
set @bit=1
end
return @bit;
END
GO
Loại và phương pháp kiểm tra ràng buộc này có ảnh hưởng xấu đến hiệu suất trên bảng và SQL của tôi không?
Nếu có cách nào tốt hơn để thêm quyền kiểm soát trên bảng này, vui lòng cho tôi biết.
Một bit được gán là 0 hoặc 1, vì vậy nếu bạn khai báo @ bit là bit thì bạn nên sử dụng đặt @bit = 1 hoặc đặt @ bit = 0 Tôi đã nghĩ. – Lazarus
MSSQL không quan tâm bạn đã đặt nó theo cách nào. bạn có thể đặt nó thành 'true, sau đó so sánh nó với 1 và SQL sẽ không quan tâm. – DForck42