sql >> Database teknologi >  >> RDS >> Sqlserver

Ulemper ved MARS (Multiple Active Result Sets)?

Der er tilsyneladende mindst to kendte (potentielle) ulemper (fra denne (1) Teamblog ):

  1. Dette kan naturligvis forårsage potentielle problemer for alle ældre systemer, som ikke er designet til at køre mod et MARS-aktiveret design - "eksisterende kode, der er optimeret til at køre i ikke-MARS-verdenen, kan vise et lille ydelsesfald, når det køres uændret med MARS"

  2. “Med MARS kan du sende flere batches med flere erklæringer til serveren. Serveren vil interleave eksekvering af sådanne batches, hvilket betyder, at hvis batchene ændrer servertilstand via for eksempel SET- eller USE-sætninger eller bruger TSQL-transaktionsstyringsudsagn (BEGIN TRAN, COMMIT, ROLLBACK), kan både du og serveren blive forvirrede om, hvad din egentlige hensigt er.”

Jeg har endnu ikke prøvet et MARS-aktiveret design, men jeg er meget tæt på at gøre det på mit nuværende projekt. Vi har et lille problem med konkurrerende (og nogle gange afhængige) forespørgselsoperationer (såsom doven indlæsning af konfigurationsdata fra den samme database, som et aktivt postsæt udfører).

Der er flere oplysninger på MSDN-siden (2) her

[ (1) https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using- mars-med-sql-native-client/ ]
[ (2) http://msdn.microsoft. com/en-us/library/ms131686.aspx ]



  1. Brug af ikke-fangende grupper i MySQL REGEXP

  2. MySQL - hent en værdi fra en anden tabel, hvis kolonnen er null

  3. Yii2 RBAC Flere tildelinger for hver bruger baseret på grupper

  4. Kunne ikke oprette forbindelse til mysql på 127.0.0.1:3306 med brugerens root-adgang nægtet for brugeren 'root'@'localhost'(ved hjælp af adgangskode:JA)