Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med SQL skript, ger låsningar

Postades av 2007-08-09 14:36:43 - Marcus Johansson, i forum sql-server/msde, Tråden har 6 Kommentarer och lästs av 944 personer

Har följande SQL skript som läser in en fil (IMAGE) till db.

I utvecklings db går allt fint men i prod där det är mer data och ett gäng aktiva användare tar det mycket lång tid att läsa in filen. Tabellen där innehåller ca 4000 rader.

Är dålig på att felsöka SQL men jag misstänker att låsningar sker och att det ger fördröjning.


Tacksam för lite hjälp...

denna tar ca 50 sek att köra.

SQL = @"BEGIN TRANSACTION DECLARE @MaxCid int SET @MaxCid = (SELECT MAX(cid) FROM tbl_DefFiles WITH (TABLOCKX HOLDLOCK))
IF @MaxCid IS NULL
SET @MaxCid = 1
ELSE
SET @MaxCid = @MaxCid + 1
INSERT INTO tbl_DefFiles (cid, Binder_cid, ChangedBy_cid, ChangedDate, CreatedBy_cid, CreatedDate, FileImage, FileName, FileType, IsDirectory)
VALUES (@MaxCid, " + binderCid + @", 101, '2007-8-9 8:53:26', 101, '2007-8-9 8:53:26', @byteFileImage, '" + fileName + "','" + fileType + @"', 0)
SELECT @MaxCid COMMIT TRANSACTION";




EDIT: testade att ta bort Transactions delen och då körs frågan på < 1sec, men transaktions hanteringen kan jag inte vara utan.

DECLARE @MaxCid int SET @MaxCid = (SELECT MAX(cid) FROM tbl_DefFiles)
IF @MaxCid IS NULL
SET @MaxCid = 1
ELSE
SET @MaxCid = @MaxCid + 1
INSERT INTO tbl_DefFiles (cid, Binder_cid, ChangedBy_cid, ChangedDate, CreatedBy_cid, CreatedDate, FileImage, FileName, FileType, IsDirectory)
VALUES (@MaxCid,30570, 101, '2007-8-9 8:53:26', 101, '2007-8-9 8:53:26', '00000000000000', 'candidator','.xxx', 0)
SELECT @MaxCid


Svara

Sv: Problem med SQL skript, ger låsningar

Postades av 2007-08-09 22:43:04 - Lars-Erik Eriksson

Transactions kan du köra med, men varför ha ett så restriktivt lås i en SELECT sats? Där behöver du inga lås, normalt sett. Dessutom, i de allra flesta fall hanterar SQL Server låsningen bättre än utvecklaren/dba:n. Kör utan lås i SQL-satsen och SQL Server kommer att lägga lämpliga lås.


Svara

Sv:Problem med SQL skript, ger låsningar

Postades av 2007-08-10 08:13:08 - Marcus Johansson

Är inte med på vad du menar med att SQL Server hanterar det bättre?

Kan förstå att "SELECT @MaxCid COMMIT TRANSACTION" denna select ska ligga utanför transaktionen, men kan även tycka att då den endast läser från variablen inte från själva tabellen att det inte spelar någon roll.


----------------------------------------------------
I detta fall räknar inte SQL Server själv upp ID, detta görs manuellt.
Hämtar senaste ID från tabellen ( SELECT MAX(cid) FROM tbl_DefFiles ), lägger sedan på 1 för att skapa nytt ID.

För att detta ID ska var unikt måste jag ju låsa tabellen för att förhindra att andra användare skapar samma ID, eller?
-----------------------------------------------------


Svara

Sv: Problem med SQL skript, ger låsningar

Postades av 2007-08-10 10:53:19 - Lars-Erik Eriksson

OK, då förstår jag bättre varför du gör så. Men du borde kunna ta bort HOLDLOCK och bara köra TABLOCKX?


Svara

Sv:Problem med SQL skript, ger låsningar

Postades av 2007-08-10 11:03:13 - Marcus Johansson

HOLDLOCK : Hold a shared lock until completion of the transaction.

Är inte detta nödvändigt för att inte riskera att andra användare skapar rader med samma ID?

OM denna ej används tror du du det ger en prestanda förbättring?


Svara

Sv: Problem med SQL skript, ger låsningar

Postades av 2007-08-10 11:06:54 - Lars-Erik Eriksson

Men tablockx gör i princip samma sak:

TABLOCKX Use an exclusive lock on a table. This lock prevents others from reading or updating the table and is held until the end of the statement or transaction.

Borde räcka med den...


Svara

Sv:Problem med SQL skript, ger låsningar

Postades av 2007-08-10 11:10:47 - Marcus Johansson

Jag ska kolla på detta, TACK!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 616
27 953
271 709
5 788
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies