Bu makalede MSSQL Server Execution Plan Hash Match Aggregate Operatörünü detaylı bir şekilde görmüş olacağız. Sql server sorgularda herhangi bir kolunu guruplamak için group by ifadesi kullanılması gerekmektedir. Sorgularda kullanılan bu ifadenin execution plan yapımızda Hash Match (Aggregate) olarak karşımıza çıkmaktadır.

Yukarıdaki sorgumuzda city kolunu gruplandığı için Hash Match(Aggregate) operatörünün kullandığını görmekteyiz.
SQL Server gruplama işlemi yaparken de gruplayacağı verileri ve değerleri tutmak için bellekte bir tane Hash Table oluşturup verileri geçici olarak burada tutar. Örneğin bizim sorgumuzda verilerimizi City değerine göre kaçar adet olduklarını listelemek istedik. SQL Server bu işlem için bellekte City değerini ve buna karşılık ilgili değerden kaç adet olduğunu tutacak bir tablo oluşturur.
Gruplama işlemlerinin de maliyetleri diğer işlemlere nazaran yüksektir bu yüzden gruplama yaparken de diğer işlemlerde olduğu gibi gerekli indekslerin kullanılmasına özen gösterilmeli ve mümkünse koşul ifadeleri ile üzerinde gruplama işlemi yapılacak olan veri kümesi küçültülmelidir.
Bu makalede execution yapılarında görülen Hash Match Aggregate ifadesine değinmiş olduk. Başka bir makalede görüşmek dileğiyle..
“Biz insana anne babasıyla ilgili öğütler verdik. Annesi, güçten kuvvetten düşerek onu karnında taşımıştır; çocuğun sütten kesilmesi iki yıl içinde olur. Bunun için (ey insan), hem bana hem anne babana minnet duymalısın; sonunda dönüş yalnız banadır.” Lokman-14