sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008:Hoe crashveilig is een CLR Stored Procedure die onbeheerde bibliotheken laadt

Aangezien deze code oorspronkelijk werd gebruikt met uitgebreide opgeslagen procedures, klinkt het alsof het onbeheerde code is. Bugs in onbeheerde code kunnen uw proces gemakkelijk laten crashen.

CLR-integratie is veel robuuster dan uitgebreide opgeslagen procedures, maar de code wordt nog steeds tijdens het proces uitgevoerd, dus fouten kunnen SQL Server uitschakelen of beschadigen. (Ter vergelijking:in theorie kan een SAFE CLR-routine SQL Server niet beschadigen, hoewel het zelfs problemen kan veroorzaken die de beschikbaarheid van uw server verminderen zonder de SQL Server volledig uit te schakelen.)

Kortom, de enige manieren om SQL Server niet te laten crashen in dit scenario zijn:

  1. Vermijd het gebruik van de functionaliteit die vastloopt.
  2. Repareer de buggycode.
  3. Voer de code uit in een afzonderlijk proces (start een uitvoerbaar bestand, bel een Windows-service, bel een webservice, enz.). U kunt een beheerde .NET DLL schrijven om deze interactie uit te voeren. Hoogstwaarschijnlijk zult u het nog steeds ONVEILIG moeten laden, maar - als het correct is geschreven - kan het in werkelijkheid best veilig zijn.


  1. Groeperen op jaar in datumveld in MySQL

  2. hoe een functie in plsql-functie aan te roepen

  3. Combineren van 2 if block en het maken van een enkele query

  4. Standaard wachtwoord voor mijn gebruiker in postgresql