<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Serkan’s Substack]]></title><description><![CDATA[My personal Substack]]></description><link>https://www.serkanaltun.com</link><image><url>https://substackcdn.com/image/fetch/$s_!_Ppu!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd391014f-212b-4204-87ee-172db19b483d_144x144.png</url><title>Serkan’s Substack</title><link>https://www.serkanaltun.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 25 Jun 2026 18:10:50 GMT</lastBuildDate><atom:link href="https://www.serkanaltun.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Serkan Altun]]></copyright><language><![CDATA[tr]]></language><webMaster><![CDATA[serkanaltun@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[serkanaltun@substack.com]]></itunes:email><itunes:name><![CDATA[Serkan Altun]]></itunes:name></itunes:owner><itunes:author><![CDATA[Serkan Altun]]></itunes:author><googleplay:owner><![CDATA[serkanaltun@substack.com]]></googleplay:owner><googleplay:email><![CDATA[serkanaltun@substack.com]]></googleplay:email><googleplay:author><![CDATA[Serkan Altun]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[SQL Server 2025 ile Gelen Yeni JSON Veri Tipi]]></title><description><![CDATA[Kurumsal SQL Server sistemlerinde, yap&#305;sal verinin d&#305;&#351;&#305;na &#231;&#305;k&#305;ld&#305;&#287;&#305;nda i&#351;ler genellikle karma&#351;&#305;kla&#351;&#305;r.]]></description><link>https://www.serkanaltun.com/p/sql-server-2025-ile-gelen-yeni-json</link><guid isPermaLink="false">https://www.serkanaltun.com/p/sql-server-2025-ile-gelen-yeni-json</guid><dc:creator><![CDATA[Serkan Altun]]></dc:creator><pubDate>Thu, 12 Jun 2025 20:11:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sjJu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52a350e7-fe1f-48b9-bf0f-572114e093bc_605x403.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Kurumsal SQL Server sistemlerinde, yap&#305;sal verinin d&#305;&#351;&#305;na &#231;&#305;k&#305;ld&#305;&#287;&#305;nda i&#351;ler genellikle karma&#351;&#305;kla&#351;&#305;r. JSON gibi yar&#305; yap&#305;land&#305;r&#305;lm&#305;&#351; veri tipleri, uygulama katman&#305;nda b&#252;y&#252;k esneklik sa&#287;lasa da; veritaban&#305; katman&#305;nda &#231;o&#287;u zaman yaln&#305;zca &#8220;uyarlama&#8221; ile &#231;al&#305;&#351;t&#305;r&#305;labiliyordu. Bildi&#287;iniz &#252;zere, SQL Server 2016 s&#252;r&#252;m&#252;yle birlikte JSON deste&#287;i sunulmaya ba&#351;land&#305;; ancak bu destek, JSON verilerinin nvarchar veri tipi i&#231;inde d&#252;z metin olarak saklanmas&#305;yla s&#305;n&#305;rl&#305;yd&#305;.</p><p>Bu yakla&#351;&#305;m ise beraberinde &#246;nemli k&#305;s&#305;tlamalar getiriyordu. &#199;&#252;nk&#252; veritaban&#305; motoru, JSON verisini &#246;zel bir veri t&#252;r&#252; olarak de&#287;il, yaln&#305;zca d&#252;z metin bi&#231;iminde i&#351;liyordu. Sonu&#231; olarak, i&#231;erik &#252;zerinde do&#287;rudan indeksleme yap&#305;lam&#305;yor, &#351;emaya uygunluk kontrol&#252; sa&#287;lanam&#305;yor ve JSON i&#231;indeki alanlara do&#287;rudan eri&#351;im veya g&#252;ncelleme ger&#231;ekle&#351;tirilemiyordu. En basit sorgular bile, metin i&#231;inde do&#287;ru konumu bulmaya &#231;al&#305;&#351;an fonksiyonlar arac&#305;l&#305;&#287;&#305;yla y&#252;r&#252;t&#252;lmek zorundayd&#305;. <code>OPENJSON</code>, <code>JSON_VALUE</code>, <code>ISJSON</code> gibi i&#351;levler bu noktada b&#252;y&#252;k kolayl&#305;k sa&#287;lasa da, asl&#305;nda veritaban&#305; motorunun JSON&#8217;u yerel d&#252;zeyde tan&#305;mamas&#305;n&#305;n etraf&#305;ndan dola&#351;an &#231;&#246;z&#252;mlerdi. Bu nedenle performans, y&#246;netilebilirlik ve veri b&#252;t&#252;nl&#252;&#287;&#252; a&#231;&#305;s&#305;ndan bak&#305;ld&#305;&#287;&#305;nda, bu yap&#305; s&#305;n&#305;rl&#305;, dikkat gerektiren ve uzun vadede ge&#231;ici nitelikte bir &#231;&#246;z&#252;md&#252;.</p><p>Microsoft, SQL Server 2025 ile bu tabloyu art&#305;k k&#246;kten de&#287;i&#351;tiriyor. Yeni s&#252;r&#252;mde JSON ad&#305;nda &#246;zel bir veri tipi mevcut. Bu veri tipi JSON i&#231;eriklerini binary formatta sakl&#305;yor (2 GB&#8217;a kadar), UTF-8 deste&#287;i sunuyor ve en &#246;nemlisi veritaban&#305; motoru taraf&#305;ndan yerel olarak tan&#305;n&#305;yor. Bu sayede, JSON i&#231;eri&#287;ine alan bazl&#305; eri&#351;im yap&#305;labiliyor, modify() fonksiyonu ile bireysel alanlar do&#287;rudan g&#252;ncellenebiliyor ve JSON alanlar&#305;na &#246;zel indeksleme ile sorgu performans&#305; ciddi bi&#231;imde art&#305;r&#305;labiliyor. K&#305;sacas&#305; JSON, art&#305;k misafir de&#287;il, sistemin do&#287;al bir par&#231;as&#305;.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52a350e7-fe1f-48b9-bf0f-572114e093bc_605x403.png&quot;}],&quot;caption&quot;:&quot;SQL Server 2025 ile JSON Deste&#287;indeki Evrim&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/52a350e7-fe1f-48b9-bf0f-572114e093bc_605x403.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>SQL Server 2025&#8217;in Public Preview s&#252;r&#252;m&#252;, bu d&#246;n&#252;&#351;&#252;m&#252; erkenden test etmek isteyen DBA&#8217;ler ve geli&#351;tiriciler i&#231;in de&#287;erli f&#305;rsatlar sunuyor. Siz de bu &#246;nizleme s&#252;r&#252;m&#252;n&#252; indirip test etmek isterseniz, <strong><a href="https://www.microsoft.com/en-us/sql-server/blog/2025/05/19/announcing-sql-server-2025-preview-the-ai-ready-enterprise-database-from-ground-to-cloud/">Microsoft&#8217;un resmi SQL Server 2025 Public Preview sayfas&#305;n&#305;</a></strong> ziyaret edebilirsiniz.</p><p>Bu makalede, JSON veri tipinin sundu&#287;u yenilikleri uygulamal&#305; &#246;rneklerle ele alacak; yeni fonksiyonlar&#305;, sorgu davran&#305;&#351;lar&#305;n&#305; ve indeksleme yeteneklerini ekran &#231;&#305;kt&#305;lar&#305;yla birlikte inceleyece&#287;iz.</p><h2>JSON Veri Tipiyle Tablo Olu&#351;turma ve Veri Ekleme</h2><p>A&#351;a&#287;&#305;daki &#246;rnekte, <code>order_info</code> s&#252;tunu <code>JSON NOT NULL</code> olarak tan&#305;mlanarak yaln&#305;zca ge&#231;erli JSON belgelerinin kabul edilece&#287;i bir yap&#305; olu&#351;turulmu&#351;tur. Bu yap&#305; sayesinde JSON verisi hem sistem taraf&#305;ndan tan&#305;n&#305;r hem de &#351;ema ge&#231;erlili&#287;i kontrol edilir. Eski <code>nvarchar</code> yakla&#351;&#305;m&#305;n&#305;n aksine, art&#305;k JSON verisi sistemin ger&#231;ek bir par&#231;as&#305; olarak i&#351;lenmektedir.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c70791c7-952b-4d4d-8041-7f4a1a09325b_857x641.png&quot;}],&quot;caption&quot;:&quot;SQL Server 2025 ile JSON Veri Tipi Kullanan Tablo Olu&#351;turma&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c70791c7-952b-4d4d-8041-7f4a1a09325b_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Yeni olu&#351;turulan <code>Orders</code> tablosuna ge&#231;erli JSON i&#231;erikleri do&#287;rudan <code>INSERT INTO</code> komutu ile eklenebilir. A&#351;a&#287;&#305;daki g&#246;rselde g&#246;r&#252;ld&#252;&#287;&#252; gibi, her bir JSON belgesi kendi yap&#305;sal b&#252;t&#252;nl&#252;&#287;&#252;n&#252; koruyarak <code>order_info</code> s&#252;tununa yaz&#305;l&#305;yor. Ayr&#305;ca, SQL Server 2025 bu verileri binary formatta saklad&#305;&#287;&#305; i&#231;in g&#252;n&#252;n sonunda hem disk kullan&#305;m&#305; optimize edilir hem de sorgulama i&#351;lemleri daha h&#305;zl&#305; &#231;al&#305;&#351;&#305;r.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2e78b6a-624c-43f1-96e3-d90508c58580_857x641.png&quot;}],&quot;caption&quot;:&quot;SQL Server 2025 ile JSON Veri Tipine Sahip Kolona JSON Verisi Ekleme&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2e78b6a-624c-43f1-96e3-d90508c58580_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Ayr&#305;ca dikkat edilmesi gereken bir di&#287;er konu, veritaban&#305; motorunun art&#305;k JSON ge&#231;erlili&#287;ini de kontrol ediyor olmas&#305;d&#305;r. E&#287;er JSON yap&#305;sal olarak hatal&#305;ysa, sorgu &#231;al&#305;&#351;t&#305;r&#305;lamaz ve hata al&#305;n&#305;r. Bu, sistem d&#252;zeyinde &#351;ema b&#252;t&#252;nl&#252;&#287;&#252; sa&#287;lar.</p><h2>modify() Fonksiyonu ile Alan Bazl&#305; De&#287;i&#351;iklik</h2><p>SQL Server 2025 ile tan&#305;t&#305;lan <code>JSON</code> veri tipi, yaln&#305;zca veri eri&#351;imini de&#287;il, do&#287;rudan g&#252;ncellemeyi de desteklemektedir. Bu veri tipiyle birlikte gelen <code>modify()</code> metodu sayesinde, JSON i&#231;indeki belirli alanlara noktasal eri&#351;im sa&#287;lanarak do&#287;rudan g&#252;ncelleme yap&#305;labilir. Bu yakla&#351;&#305;m, &#246;nceki s&#252;r&#252;mlerde <code>nvarchar</code> &#252;zerinde yap&#305;lan i&#351;lemlerde kar&#351;&#305;la&#351;&#305;lan metin ayr&#305;&#351;t&#305;rma, yeniden olu&#351;turma ve hata risklerini b&#252;y&#252;k &#246;l&#231;&#252;de ortadan kald&#305;r&#305;r.</p><p>A&#351;a&#287;&#305;daki &#246;rnekte, <code>order_info</code> kolonunda yer alan JSON verisi i&#231;erisindeki <code>Quantity</code> alan&#305; sorgulanmaktad&#305;r. Bu i&#351;lemde, <code>JSON_VALUE</code> fonksiyonu kullan&#305;larak her sat&#305;rdaki <code>Quantity</code> de&#287;eri ayr&#305;&#351;t&#305;r&#305;l&#305;r ve ili&#351;kisel tablolarda oldu&#287;u gibi s&#252;tun bi&#231;iminde d&#305;&#351;ar&#305;ya aktar&#305;l&#305;r.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c3bef1f-bc69-4ac5-8025-0fc9b27f5910_857x641.png&quot;}],&quot;caption&quot;:&quot;modify() Fonksiyonu ile G&#252;ncelleme Yapmadan &#214;nce JSON Alan&#305;ndaki Veri Durumu&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c3bef1f-bc69-4ac5-8025-0fc9b27f5910_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Bir &#246;nceki ad&#305;mda sorgulad&#305;&#287;&#305;m&#305;z <code>Quantity</code> alan&#305;, art&#305;k <code>modify()</code> metodu kullan&#305;larak do&#287;rudan g&#252;ncellenebilir. SQL Server 2025 ile gelen <code>JSON</code> veri tipinin sa&#287;lad&#305;&#287;&#305; bu yenilik sayesinde, geleneksel metin bazl&#305; i&#351;lemler yerine alan d&#252;zeyinde ve yap&#305;sal g&#252;ncellemeler art&#305;k yap&#305;labilmektedir. A&#351;a&#287;&#305;daki <code>UPDATE</code> sorgusu, <code>order_id</code> de&#287;eri 1 olan kay&#305;tta <code>Quantity</code> alan&#305;n&#305; 1&#8217;den 2&#8217;ye g&#252;ncellemektedir.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e66ac29-284e-4815-9674-8f7b1339be8f_857x641.png&quot;}],&quot;caption&quot;:&quot;SQL Server 2025 ile JSON Alan&#305;nda modify() Fonksiyonu ile Alan G&#252;ncelleme&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e66ac29-284e-4815-9674-8f7b1339be8f_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>&#304;&#351;lem tamamland&#305;ktan sonra ayn&#305; <code>SELECT</code> sorgusu yeniden &#231;al&#305;&#351;t&#305;r&#305;ld&#305;&#287;&#305;nda, <code>order_id = 1</code> olan sat&#305;rda <code>Quantity</code> de&#287;erinin 2 olarak g&#252;ncellendi&#287;i g&#246;r&#252;l&#252;r. Bu i&#351;lem s&#305;ras&#305;nda ne JSON belgesinin tamam&#305; de&#287;i&#351;tirildi ne de metin d&#252;zeyinde bir manip&#252;lasyon yap&#305;ld&#305;; sadece hedef alana do&#287;rudan m&#252;dahale edilerek g&#252;ncelleme sa&#287;land&#305;.</p><h2>JSON_CONTAINS() Fonksiyonu ile JSON &#304;&#231;eri&#287;inde De&#287;er Arama</h2><p>SQL Server 2025 ile birlikte gelen bir di&#287;er dikkat &#231;ekici yenilik ise <code>JSON_CONTAINS()</code> fonksiyonudur. Bu fonksiyon sayesinde, JSON veri yap&#305;s&#305; i&#231;inde belirli bir de&#287;erin belirli bir yol &#252;zerinde bulunup bulunmad&#305;&#287;&#305;n&#305; sorgulamak art&#305;k &#231;ok daha kolay ve performansl&#305; h&#226;le gelmi&#351;tir.</p><p>&#214;nceki s&#252;r&#252;mlerde, bir JSON alan&#305; i&#231;inde de&#287;er aramak i&#231;in genellikle <code>JSON_VALUE()</code> fonksiyonu ile birlikte <code>WHERE</code> ko&#351;ullar&#305; yazmak gerekirdi. Ancak bu y&#246;ntem, &#246;zellikle b&#252;y&#252;k veri k&#252;melerinde performans a&#231;&#305;s&#305;ndan yeterli olmayabiliyordu. SQL Server 2025&#8217;te ise <code>JSON_CONTAINS()</code>, hem daha sade bir s&#246;zdizimi sunar hem de JSON indeksleriyle birlikte kullan&#305;ld&#305;&#287;&#305;nda ciddi sorgu h&#305;zlanmalar&#305; sa&#287;lar.</p><p>A&#351;a&#287;&#305;daki &#246;rnekte, <code>order_info</code> s&#252;tununda yer alan JSON belgeleri i&#231;erisinden, <code>Quantity</code> alan&#305; 2 olan sat&#305;rlar filtrelenmektedir. </p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8325b276-fb07-4de6-b4ac-1ddc64387ca0_857x641.png&quot;}],&quot;caption&quot;:&quot;Quantity de&#287;eri 2 olan JSON nesnesi, JSON_CONTAINS() ile ba&#351;ar&#305;yla filtrelendi&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8325b276-fb07-4de6-b4ac-1ddc64387ca0_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>Burada <code>JSON_CONTAINS()</code> fonksiyonu &#252;&#231; parametre &#351;eklinde &#231;al&#305;&#351;maktad&#305;r. &#304;lk parametre olarak sorgulanacak JSON verisi (<code>order_info</code>), ikinci parametre olarak aranacak de&#287;er (<code>'2'</code>), &#252;&#231;&#252;nc&#252; parametre olarak ise kontrol edilecek JSON yolu (<code>'$.Items[*].Qty'</code>) belirtilir. Bu yap&#305; sayesinde, JSON i&#231;eri&#287;inde belirli bir de&#287;erin belirli bir alanda bulunup bulunmad&#305;&#287;&#305; kolayca sorgulanabilir.</p><p><code>JSON_CONTAINS()</code> fonksiyonu, yaln&#305;zca basit de&#287;er kontrolleriyle s&#305;n&#305;rl&#305; kalmaz; ayn&#305; zamanda JSON belgeleri i&#231;indeki diziler veya nesneler i&#231;erisinde de arama yapabilme yetene&#287;ine sahiptir. Bu fonksiyon, yukar&#305;da belirtti&#287;im &#252;zere &#246;zellikle <code>JSON INDEX</code> ile birlikte kullan&#305;ld&#305;&#287;&#305;nda, geleneksel metin tarama yerine do&#287;rudan indeks &#252;zerinden &#231;al&#305;&#351;t&#305;&#287;&#305; i&#231;in sorgu performans&#305;nda ciddi bir art&#305;&#351; sa&#287;lar. Bu y&#246;n&#252;yle, <code>JSON_VALUE</code> ile yap&#305;lan filtreleme i&#351;lemlerine g&#246;re &#231;ok daha verimli ve &#246;l&#231;eklenebilir bir &#231;&#246;z&#252;m sunmaktad&#305;r. Ayr&#305;ca <code>JSON_CONTAINS()</code> yaln&#305;zca yeni <code>JSON</code> veri tipiyle de&#287;il, <code>nvarchar</code> t&#252;r&#252;nde saklanan ge&#231;erli JSON verilerle de &#231;al&#305;&#351;abilir; ancak maksimum performans ve indeks deste&#287;i elde etmek i&#231;in <code>JSON</code> veri tipiyle birlikte kullan&#305;lmas&#305; &#246;nerilmektedir.</p><h2>SQL Server 2025 ile JSON Index Kullan&#305;m&#305;</h2><p>SQL Server 2025 ile birlikte gelen en &#246;nemli performans yeniliklerinden biri de <code>JSON INDEX</code> deste&#287;idir. &#214;nceki s&#252;r&#252;mlerde <code>nvarchar</code> s&#252;tunlar i&#231;inde saklanan JSON verileri &#252;zerinde indeksleme yapmak olduk&#231;a s&#305;n&#305;rl&#305;yd&#305; ve genellikle <code>computed column</code> + <code>persisted</code> + <code>index</code> gibi dolayl&#305; y&#246;ntemler gerekiyordu. Art&#305;k bu t&#252;r yapay &#231;&#246;z&#252;mler yerine do&#287;rudan JSON alanlar&#305; &#252;zerinde indeks tan&#305;mlamak m&#252;mk&#252;n.</p><p><code>CREATE JSON INDEX</code> ifadesiyle, bir <code>json</code> veri tipine sahip s&#252;tunun i&#231;indeki belirli yollar indekslenebilir. Bu sayede <code>JSON_VALUE</code>, <code>JSON_CONTAINS</code> gibi fonksiyonlarla yap&#305;lan sorgular, veritaban&#305; motoru taraf&#305;ndan indeks &#252;zerinden y&#252;r&#252;t&#252;lerek ciddi performans kazanc&#305; sa&#287;layacakt&#305;r.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6dadadbb-995e-4ad6-8fdb-e70664387647_857x641.png&quot;}],&quot;caption&quot;:&quot;Orders tablosundaki order_info s&#252;tunu i&#231;in JSON path bazl&#305; indeks olu&#351;turma&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6dadadbb-995e-4ad6-8fdb-e70664387647_857x641.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p><code>JSON INDEX</code>, tahmin edebilece&#287;iniz gibi yaln&#305;zca <code>json</code> veri tipine sahip s&#252;tunlar &#252;zerinde tan&#305;mlanabilir. Bu nedenle, eski s&#252;r&#252;mlerde kullan&#305;lan <code>nvarchar</code> tabanl&#305; JSON yap&#305;lar&#305;nda bu yeni indeksleme y&#246;ntemi kullan&#305;lamaz. Ayr&#305;ca, indeksin uygulanaca&#287;&#305; tablonun mutlaka bir primary key i&#231;ermesi gerekir; aksi takdirde <code>CREATE JSON INDEX</code> komutu hata verir. Bir de tabii SQL Server 2025'in bu &#246;zelli&#287;i h&#226;l&#226; geli&#351;tirilmekte olan bir yenilik oldu&#287;u i&#231;in, indeksler yaln&#305;zca offline modda olu&#351;turulabilmektedir. Bu da indeks olu&#351;turma s&#252;resince ilgili tabloya eri&#351;imin ge&#231;ici olarak engellenebilece&#287;i anlam&#305;na gelir. &#350;u an i&#231;in yaln&#305;zca <code>JSON_VALUE</code> ve <code>JSON_CONTAINS</code> gibi belirli fonksiyonlarla uyumlu &#231;al&#305;&#351;maktad&#305;r; dolay&#305;s&#305;yla t&#252;m JSON i&#351;lemleri bu indeks taraf&#305;ndan h&#305;zland&#305;r&#305;lamaz.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f22a756-1c1d-4be4-b0d8-74ff6fdc531f_844x591.png&quot;}],&quot;caption&quot;:&quot;SQL Server 2025'te, order_info s&#252;tunu i&#231;in tan&#305;mlanm&#305;&#351; JSON index&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f22a756-1c1d-4be4-b0d8-74ff6fdc531f_844x591.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p><code>JSON INDEX</code> deste&#287;i sayesinde, &#246;zellikle b&#252;y&#252;k veri hacmine sahip sistemlerde JSON alanlar&#305;na y&#246;nelik sorgular &#231;ok daha h&#305;zl&#305; ve verimli h&#226;le gelir. Daha &#246;nce metin taramas&#305;na dayal&#305; olarak &#231;al&#305;&#351;an <code>WHERE</code> ko&#351;ullar&#305;, art&#305;k do&#287;rudan index seek ile y&#252;r&#252;t&#252;lebilir. Bu durum, i&#351;lem s&#252;resini azalt&#305;rken sistem kaynaklar&#305;n&#305; da daha verimli kullanman&#305;z&#305; sa&#287;lar. Ayr&#305;ca, &#246;nceki s&#252;r&#252;mlerde ihtiya&#231; duyulan <code>computed column</code> ve <code>persisted</code> yap&#305;lar&#305;na gerek kalmad&#305;&#287;&#305; i&#231;in, hem kod sadele&#351;ir hem de bak&#305;m kolayla&#351;&#305;r. <code>JSON INDEX</code>, yar&#305; yap&#305;land&#305;r&#305;lm&#305;&#351; verilerin ili&#351;kisel veri tabanlar&#305;nda ger&#231;ek anlamda optimize &#351;ekilde kullan&#305;lmas&#305;n&#305;n &#246;n&#252;n&#252; a&#231;acak gibi g&#246;r&#252;n&#252;yor.</p><p>En nihayetinde SQL Server 2025 ile gelen yerel JSON veri tipi ve buna e&#351;lik eden fonksiyonel yenilikler, yar&#305; yap&#305;land&#305;r&#305;lm&#305;&#351; verilerin veritaban&#305; d&#252;zeyinde y&#246;netimini art&#305;k &#231;ok daha do&#287;al, g&#252;venli ve performansl&#305; bir h&#226;le getiriyor. <code>modify()</code>, <code>JSON_CONTAINS()</code> ve <code>JSON INDEX</code> gibi yetenekler, yaln&#305;zca geli&#351;tiricilere daha temiz kod yazma imk&#226;n&#305; sunmakla kalm&#305;yor; ayn&#305; zamanda sorgu performans&#305;n&#305; da g&#246;zle g&#246;r&#252;l&#252;r bi&#231;imde iyile&#351;tiriyor. Kurumsal sistemlerde JSON&#8217;un bir &#8220;ge&#231;ici &#231;&#246;z&#252;m&#8221; de&#287;il, do&#287;rudan desteklenen bir veri modeli olarak yer almas&#305;; veri mimarisi a&#231;&#305;s&#305;ndan &#246;nemli bir d&#246;n&#252;m noktas&#305; anlam&#305;na geliyor. &#214;n&#252;m&#252;zdeki d&#246;nemde SQL Server&#8217;&#305;n JSON deste&#287;i daha da olgunla&#351;t&#305;k&#231;a, hem veri esnekli&#287;i hem de analitik kabiliyetleri a&#231;&#305;s&#305;ndan &#231;ok daha g&#252;&#231;l&#252; senaryolar m&#252;mk&#252;n olacak gibi g&#246;r&#252;n&#252;yor.</p>]]></content:encoded></item></channel></rss>