Announcement

Collapse
No announcement yet.

insert --> select und SQL Server

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • insert --> select und SQL Server

    Hallo,
    also ich benutze SQL Server 2000 und habe eine Frage
    ist es normal wenn ich auf eine Tabelle die ca. 113316 Datensätze hat einen insert oder update fahre wird die für den zeit des insert bzw. update gesperrt in anderen Worten, wenn ich sage
    update tabele set t=0
    und sofort danach
    select * tabele
    dann wartet den select solange bis update fertig ist und es kann beim grossen Tabellen sehr lange dauern ;(

  • #2
    Ja.

    Der MS-SQL-Server sperrt alle Zugriffe auf geänderte Datensätze bis diese commited sind.

    Hat Du primärschlüssel vergeben und werden nur ein paar Datensätze geändert und dein Select ließt keines der geänderten Datensätze so wird die Select-Anweisung nicht blockiert.

    Der MS-SQL-Server unterstützt (im Gegensatz z.B. zu Oracle, MySQL, Interbase) kein Multi-Versions-Konzept. Diese Datenbanken würde solange dein Update noch nicht zu ende gelaufen ist für alle (eigentlich schon physikalisch geänderten Datensätze) noch den letzte gültige Version liefern.

    Also "Lösung" wäre ein dirty-read mittels Isolationsstufe "Read Uncommitted" möglich (aber wahrscheinlich nicht gewünscht).

    Kein Wunder das MS dadurch in manchen Tests so gut abschneidet :-

    Comment


    • #3
      Erst mal Vielen Dank, hmm... es ist wirklich schade ;

      Comment

      Working...
      X