Announcement

Collapse
No announcement yet.

Insert probleme

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

  • Insert probleme

    Hallo,

    ich habe die Tabelle Artikelstamm mit dem Schlüssel Artikelnummer.
    Dieser ist aus historischen Gründen Alphanumerisch.

    Jetzt gibt es in der Firma verschiedene Nummernkreise und bei manchen Nummernkreisen ein Problem beim anfügen von Datensätzen.

    Normalerweise sind unsere Artikel wie folgt angelegt:

    B-010-xxxx
    B-020-xxxx
    usw

    Ich habe im Anhang ein Bild angefügt.
    Wenn ich in der Spalte einen Artikel anlege, der mit z.B. 1111 anfängt, funktioniert es. Lege ich einen Artikel mit B-075-xxxx an, kommt es manchmal zu einer Sperre durch einen anderen Benutzer. Das sehe ich über SP_who.

    Ich füge über eine Store Procedure Artikel an, aber wie im Anhang zu sehen, funktioniert das auch direkt in der Tabelle nicht.

    Hat da jemand eine Idee?
    Attached Files

  • #2
    Hallo,

    liegt auf dieser Spalte ein Clustered Index, so dass der eingetragene Feldinhalt die Position der zu beschreibenden Datenbankseite (Page) dieser Tabelle festlegt? Ist für diese Tabelle ein Trigger aktiv, der zusätzliche Lese-/Schreibzugriffe vornimmt?

    Comment


    • #3
      Der primary key ist ein Clustered Index, Ein Trigger ist vorhanden.

      Comment


      • #4
        Dann solltest du vielleicht mal den Sourcecode des/der Trigger posten...

        bye,
        Helmut

        Comment


        • #5
          Hallo,

          Lege ich einen Artikel mit B-075-xxxx an, kommt es manchmal zu einer Sperre durch einen anderen Benutzer.
          wenn die Artikelbezeichnung in einer Spalte gespeichert wird, die zu einem Clustered Index gehört, ordnet der SQL Server jeden Datensatz, dessen Artikelbezeichnung mit dem gleichen Präfix beginnt, der gleichen Datenbankseite (Page) zu (d.h. der SQL Server sortiert die Datensätze nach dem Karteikasten-Prinzip physisch in der Datenbankdatei). Wenn zwei Benutzer (in zwei Datenbanksitzungen) jeweils einen Datensatz bearbeiten, dessen Artikelnummer mit der Zeichenfolge "B-075-" beginnt, beschreiben diese beiden Sitzungen jeweils in ihrer Transaktion die gleiche Datenbankseite. Wenn dann aus irgend einem Grund der SQL Server von der Datensatzsperre zur Seitensperre eskaliert, kann immer nur eine Datenbanksitzung (Transaktion) diese Seite beschreiben. Zu einer Sperreskalation kommt es in der Regel dann, wenn eine Datenbanksitzung eine Transaktion über einen längeren Zeitraum offen lässt und innerhalb dieser Transaktion viele Datensätze lesend oder schreibend anfasst.

          Comment

          Working...
          X