SQL Server에 분당 수백 번 실행되는 SP가 있으며 데이터베이스에 대해 들어오는 트래픽을 확인해야합니다. 이 순간은 그러나INSERT 전후에 더 빠릅니다.
INSERT INTO table
SELECT @value1,@value2 WHERE NOT EXISTS
(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2);
다음을 수행, 나 또한 더 빠른 것
IF NOT EXISTS(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2)
INSERT INTO table (value1,value2) VALUES (@value1,@value2);
갈 수 있을까? 나는 그 (것)들 사이 다량 다름 아닙니다 그러나 나는 역사적으로 TSQL에 아주 좋지 않다 감각을 얻는다. =/
UPDATE : Whoops ...는 1 개 가치를 사용하여 레코드가 있으므로 고유 제한 조건이 작동하지 않습니다. ...
http://stackoverflow.com/questions/2276023/t-sql-insert-or-update –
@carlos : 그것은 다소 관련이 있지만 실제로는 다른 질문입니다. –
두 번째 옵션은 안전하지 않습니다. 동시에'INSERT '는'IF'와'INSERT' 문 사이에서 발생할 수 있습니다. – Quassnoi