Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MS-SQL] Tabellen from scratch rebuilden?

Pagina: 1
Acties:

  • pjonk
  • Registratie: November 2000
  • Laatst online: 17-11 10:27
Momenteel heb ik performance problemen met een specifieke tabel in een SQL Server 2005 database. Op deze tabel zijn vele ALTER TABLE scripts gedraaid, waarbij bestaande columns worden gewijzigd en een groot aantal nieuwe columns worden toegevoegd.

Na het uitvoeren van deze ALTER scripts zijn met name updates in de tabel erg traag geworden en de oorzaak lijkt fragmentatie van de tabel te zijn. Maar ook na het uitvoeren van een defragmentatie/INDEX Rebuild zijn updates erg traag.
N.B: Dit probleem speelt op alle SQL Server omgevingen (ontwikkel, test, acceptatie)

Zodra ik de tabel drop, opnieuw aanmaak en vul is de performance een stuk beter.
Is het raadzaam om tabellen compleet opnieuw te bouwen indien er vele kolom wijzigingen zijn of zijn ALTER scripts wel de way to go?
Ook vraag ik mij af of er een manier is om een bestaande SQL server tabel te repairen.

It’s nice to be important but it’s more important to be nice


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je hebt toch een performance monitor (weet ff de exacte naam niet) in MS SQL 2005 zitten?

Draai die ff en check wat de resultaten zijn :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 14-11 18:45

Gé Brander

MS SQL Server

Veel van deze vragen zijn via de bekende zoekmethoden te beantwoorden. Echter...

Een nieuwe tabel met de data er opnieuw in geplaatst is natuurlijk altijd sneller dan een gedeeltelijk opnieuw opgebouwde index in een tabel.

Vraag jezelf eens af op je zoektocht:
1) Wordt de clustered index ook met jou commando opnieuw opgebouwd?
2) Worden alleen de non-clustered indexen opnieuw opgebouwd?
3) Zijn er andere methoden dan die jij hier beschrijft om indexen de defragmenteren?

Succes!

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


Verwijderd

Misshcien dat het niet alleen aan de indexen ligt, maar door table fragmentation?
Artikeltje:
How to Detect Table Fragmentation in SQL Server 2000 and 2005

  • whoami
  • Registratie: December 2000
  • Nu online
Maak een maintenance plan voor je database, waarin je specifieert dat je data en indexen moeten gereorganiseerd worden. (met behoud van de originele fillfactor).

Daarmee kan je ervoor zorgen dat je fragmentatie tegengaat, en ook dat je niet onnodig veel pages gaat gebruiken.

> DTE trouwens

Doe eens een dbcc showcontig voor het maintenance plan wordt uitgevoerd, en erna, en vergelijk de resultaten.

[ Voor 16% gewijzigd door whoami op 12-03-2008 12:26 ]

https://fgheysels.github.io/


  • pjonk
  • Registratie: November 2000
  • Laatst online: 17-11 10:27
Bedankt voor alle suggesties tot zover. :)

@c70070540
1) Wordt de clustered index ook met jou commando opnieuw opgebouwd?
Nee

2) Worden alleen de non-clustered indexen opnieuw opgebouwd?
Ja

3) Zijn er andere methoden dan die jij hier beschrijft om indexen de defragmenteren?
Dit heb ik gedaan met een CREATE INDEX REBUILD.

@maui71
Bedankt voor de link zal het artikel bekijken.

@whoami
Er draaien momenteel geen maintenance plans, maar een collega heeft daar wel mee geexperimenteerd. We gaan hier verder naar kijken.

It’s nice to be important but it’s more important to be nice


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

pjonk schreef op woensdag 12 maart 2008 @ 13:35:
Bedankt voor alle suggesties tot zover. :)

@whoami
Er draaien momenteel geen maintenance plans, maar een collega heeft daar wel mee geexperimenteerd. We gaan hier verder naar kijken.
Geen maintenance plan, geëxperimenteerd? Gefeliciteerd, je hebt mijn collega totaal stil gekregen; De mond beweegt, maar er komt geen geluid meer uit.
On topic: Allereerst is het niet verstandig regelmatig tabellen te gaan verbouwen en al helemaal niet in productie omgevingen. Dat er na verloop een aantal extra velden erbij komt kan ik nog indenken, maar niet data de definitie van bestaanden velden wijzigd. Dat zegt heel erg veel over de manier waarop applicatie design is uitgevoerd.

Ik denk dat het heel erg verstandig dat jullie per direct Visual Studio sluiten en eerst eens flink gaan lezen in de SQL Server Books Online documentatie. Onderhoud van de database is het belangrijkste onderdeel van het beheren van een database. Ook de Online MSDN/Technet websites van Microsoft bevatten veel artikelen betreffende het tunen en onderhouden van MSSQL Server databases.

If it isn't broken, fix it until it is..


  • pjonk
  • Registratie: November 2000
  • Laatst online: 17-11 10:27
@Niemand_Anders
Je hebt een punt, maar bent een voorbarige conclusie aan het trekken. Het gaat hier om een development environment. Natuurlijk worden op productieomgeving maintenance plans uitgevoerd en indexen gedefragmenteerd etc.
Dat zegt heel erg veel over de manier waarop applicatie design is uitgevoerd.
Dat lijkt me ook een voorbarige conclusie.

It’s nice to be important but it’s more important to be nice


  • whoami
  • Registratie: December 2000
  • Nu online
wat zijn de resultaten nu na het toepassen van een maintenance plan waarin je de indexen en data her-organiseerd (en de clustered index herbouwd, want deze bepaald uiteindelijk de fysieke opslagvolgorde van de records - een slecht gekozen Clustered index kan de performance van inserts/updates trouwens sterk verlagen (als er veel page-splits moeten gebeuren bv)).

https://fgheysels.github.io/

Pagina: 1