none
SQL Server varchar(max) mı yoksa text mi? RRS feed

  • Genel Tartışma

  • Farz edelim amacım sadece uzun bir metin tutmak ve üzerinde arama vs yapmak yok. Bu durumda bazı projelerde varchar(max) bazılarında ise text görmekteyim. Ben text alanın blob olduğu için indexleme dışında bir alanda tutulduğunu filan okumuştum acaba varchar(max) konusunun farklı bir avantajı mı vardır.

    Teşekkürler


    Fullstack Developer

    31 Ağustos 2016 Çarşamba 18:41

Tüm Yanıtlar

  • Aralarında bir sürü fark var ama text , ntext ve image gelecekte olmayacağı için doğrudan varchar(max), nvarchar(max) kullanılması en doğru tercih olacaktır.

    https://msdn.microsoft.com/en-IN/library/ms187993.aspx

    31 Ağustos 2016 Çarşamba 18:47
  • Şimdi benim aklımı karıştıran olay da aslına bakarsan bu. Yani text gibi blob alanlar indexlenemediği için daha doğrusu yazılarda farklı yöntemlerle işte nedir bu alanların disk adresleri filan tutularak erişiliyor filan yazıyordu. Herneyse burada varchar(max) alanı indexlenebilir bir alanın içine girmiş olmaz mı bu durumda benim blob mantığıyla tutulabilecek bir şeyi varchar da kullanmam sıkıntı olmaz mı. Yoksa bu artık önemsiz bir husus mu, yada artık blob kapsamına girecek bu verileri sql de tutmamak mı gerek aynı resimler gibi metinleri de fiziksel dosyalara kaydedip adreslerini mu tutmak mantıklı. 

    Fullstack Developer

    31 Ağustos 2016 Çarşamba 20:25
  • varchar(max) 'ın size'ı yok ve nonclustered indexler 900byte ı geçemez. Yani varchar(max) için zaten nonclustered index oluşturamazsın. Ama full text index atmana engel değil.

    her şey mssql kapsamında bu arada


    31 Ağustos 2016 Çarşamba 20:31
  • Anladım, teşekkür ediyorum bu konu kafama takılıp duruyordu arada bir. Bir kaç kişiye sordum çevremde onlara da biri göstermiş bunu kullanın diye ama açıklamamış doğru düzgün. Tekrardan sağol.

    Fullstack Developer

    31 Ağustos 2016 Çarşamba 20:35
  • Hocam aslında bu biraz tutacağınız verinin yapısına ve büyüklüğüne bağlı olarak da değişebilir. Sadece metin olarak tutmak mı istiyorsunuz, üzerinde full-text search vb. bir yapı kuracak mısınız, indexleme stratejiniz ne olacak gibi birçok farklı açıdan bakmak gerekebilir. Burada tercih edeceğiniz yapıya bağlı olarak varchar(max) veya file table  kullanabilirsiniz. Ancak Cihan Bey'in de dediği gibi text, ntext, image gibi veri tipleri Microsoft tarafında deprecated olarak işaretlenmiş veri tipleridir. Gelecek sürümlerde kaldırılması gündeme gelecektir. Bu nedenle eğer sadece text veya varchar(max) arasında kaldıysanız yeni geliştirmeler için kesinlikle varchar(max) kullanmanızı önerebilirim.

    Naçizane fikirlerimi paylaştım. Umarım faydalı olur...


    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    www.abdullahaltintas.com

    1 Eylül 2016 Perşembe 07:35
  • Teşekkür ederim Abdullah bey yorumunuz için, muhakkak faydalı oldu.

    Fullstack Developer

    1 Eylül 2016 Perşembe 07:51