SQL Server – Prestatievergelijking van de Functie Trim en LTRIM(RTRIM)

Tijdens het geven van de SQL Server Performance Tuning Practical Workshop kreeg ik onlangs een vraag die betrekking heeft op de prestatievergelijking van de Functie Trim en LTRIM/RTRIM.

Regarding de trim-functie, heb ik eerder geblogd in de volgende blog post en ik verzoek u om hetzelfde te lezen voordat u verder gaat met de demonstratie van deze blog.

  • SQL SERVER – TRIM Functie voor het verwijderen van voorloop spaties en naloop spaties van String – SQL in Sixty Seconds #040 – Video
  • SQL SERVER – 2008 – Verbeterde TRIM() Functie – Verwijder naloop spaties, voorloop spaties, witruimte, tabs, Carriage Returns, Line Feeds
  • SQL SERVER – 2008 – TRIM() Functie – User-Defined Functie
  • SQL SERVER – TRIM() Functie – UDF TRIM()
  • SQL SERVER – 2017 – Hoe voorloop- en naloopspaties verwijderen met TRIM Functie?
  • SQL SERVER – Prestatie Observatie van TRIM Functie

Nee laten we beginnen met een eenvoudig voorbeeld waar we de prestaties van LTRIM/RTRIM met TRIM functie die nieuw is ingevoerd in SQL Server

-- Create a sample tableCREATE TABLE Test (ID INT, Col1 CHAR(100))GOSET NOCOUNT ONINSERT Test (ID, Col1)VALUES (1,' a ')GO 1000INSERT Test (ID, Col1)VALUES (1,' b ')GO-- Create a nonclustered indexCREATE NONCLUSTERED INDEX IX_Test_Col1 ON Test (Col1);GO-- SELECT TESTSELECT IDFROM TestWHERE LTRIM(RTRIM(Col1)) = 'b'GOSELECT IDFROM TestWHERE TRIM(Col1) = 'b'GOSELECT IDFROM TestWHERE Col1 = ' b 'GO-- cleanupDROP TABLE TestGO

Nu tijdens de test, hebben we drie select statement waarin de twee gevallen gebruiken we LTRIM/RTRIM en TRIM functie. Laten we de prestaties van dezelfde vergelijken met de select-instructie waarin we geen functie in de WHERE-clausule hebben gebruikt.

SQL Server - Vergelijking van de prestaties van de functie Trim en LTRIM(RTRIM) trimperf

SQL Server - Vergelijking van de prestaties van de functie Trim en LTRIM(RTRIM) trimperf

Het is heel duidelijk dat als we een functie gebruiken voor de kolom die wordt gebruikt in de WHERE-clausule, de prestaties slecht zullen zijn.