sql >> Databasteknik >  >> RDS >> Sqlserver

Är det snabbare att söka efter primärnyckelvärde före infogning än att använda try-catch?

På SQL 2008 kan du bara använda MERGE - mycket enklare än någon av dina metoder.

Jag är inte heller med dig på "Jag vill INTE använda transaktioner av prestationsskäl" - varje DML-kommando du utför är en del av en transaktion i alla fall, så det finns transaktioner även om du inte öppnar dem explicit. Om du upplever prestandaproblem kan du lägga upp mer information så att du får mer hjälp med prestanda.

Edit:Om du behöver riktigt snabba skär, lägg inte in en rad i taget. Lägg till uppsättningar av rader och använd MERGE – fördelen du får av att infoga rader med rader åt gången bör vida överväga alla mindre förbättringar du får genom att optimera hastigheten för att lägga till en rad.

Hur som helst, teoretiska resonemang om allt som har med databaser att göra är vanligtvis inte tillräckligt bra. Du måste verkligen jämföra för att avgöra vad som är snabbare. Det du kallar "fråga i onödan efter en befintlig linje" kan vara helt försumbart, och du vet inte om så är fallet förrän du har mätt det under realistiska förhållanden.



  1. ORA-01537. Jag vill söka var filen ingår

  2. Hur man stoppar/startar MySQL med MySQL Workbench

  3. Har problem med att matcha ett enstaka tecken i en SQL-tabell

  4. Oracle.DataAccess.Dll-laddningsproblem på x-64-dator