Ich habe zwei Tabellen (Usertable und Userprofile) und die Struktur:SQL Server ausgeführt Update dauert es mehr Zeit
create table userTable( id_user int identity(1,1) primary key , Name varchar(300) not null , Email varchar(500) not null , PasswordUser varchar(700) not null, userType int , constraint usertype_fk foreign key(userType) REFERENCES userType(id_type) on delete set null )
und userPtrofile:
create table UserProfile( id_profile int identity(1,1) primary key , ClientCmpName varchar(300) null, Clientaddress varchar(500) null, phone varchar(50) null, descriptionClient varchar(400) null, img image null, messageClient text , fk_user int , constraint fkuser foreign key(fk_user) references userTable(id_user) on delete cascade )
ich SQL Server bin mit 2008 Die Problem ist, dass, wenn ich Datensätze die ausführende Last ohne Ausführung von aktualisieren, dies Beispielabfrage ist:
Screenshot
Ich vermute, ein Teil der Performance-Hit ist, dass es ein 'Text' Feld aktualisiert, die nicht inline mit dem Rest der Zeilendaten gespeichert ist und ist ein extra Hop pro Datensatz zu aktualisieren. Die Dokumentation hierzu (https://technet.microsoft.com/en-us/library/ms189574(v=sql.105).aspx#Anchor_0) besagt jedoch, dass solange die Daten klein sind, dies nicht der Fall sein sollte um diesen zusätzlichen Hop zu machen. Ich weiß nicht, ob diese Optimierung für 2008 getan wurde. – DiskJunky