HASHBYTES
İşlevi yalnızca girdi olarak 8000 byte kadar sürer. Senin girişler bundan daha potansiyel olarak geniş olduğu için karma alır alanın aralığında yineler olacak bakılmaksızın seçilen algoritma, çarpışmalara neden olur. Karıştırmayı planladığınız veri aralığını dikkatlice düşünün - ilk 4000 karakteri kullanmak bariz bir seçimdir, ancak verileriniz için en iyi seçim olmayabilir .
Her halükarda, karma işlevinin ne olması nedeniyle, girişler 8000 bayt veya daha az olsa bile , sonuçlarda% 100 doğruluk sağlamanın tek yolu temel değerleri bir noktada karşılaştırmaktır (okuma: ilki olmak zorunda değildir ). Dönemi.
İşletme,% 100 doğruluk gerekip gerekmediğini belirleyecektir. Bu baz değerleri karşılaştırarak ya (a) olduğunu söyleyecektir gerekli , veya (b) Eğer gerektiğini düşünün değil taban değerlerinin karşılaştırılması - performans için kapalı takas gerektiğini ne kadar doğruluk.
Eşsiz bir girdi setinde karma çarpışmalar mümkün olsa da, seçilen algoritmaya bakılmaksızın sonsuz derecede nadirdir. Bu senaryoda bir karma değer kullanma fikri, birleştirme sonuçlarını etkili bir şekilde daha yönetilebilir bir kümeye daraltmaktır, nihai sonuç kümesine hemen ulaşmak zorunda değildir. Yine,% 100 doğruluk için, bu sürecin son adımı olamaz . Bu senaryo, karma işlemini kriptografi amacıyla kullanmaz, bu nedenle MD5 gibi bir algoritma iyi çalışır.
"Doğruluk" amaçları için bir SHA-x algoritmasına geçmeyi haklı çıkarmak benim için çok zor olurdu, çünkü eğer işletme MD5'in küçük çarpışma olasılıkları hakkında korkacaksa, onlar da korkacaklar SHA-x algoritmaları da mükemmel değil. Ya küçük bir yanlışlıkla karşılaşmak zorundalar ya da sorgunun% 100 doğru olmasını ve ilgili teknik çıkarımlarla yaşamalarını şart koşarlar. CEO, MD5 yerine SHA-x kullandığınızı bilerek geceleri daha iyi uyuyorsa, iyi, iyi; bu durumda teknik açıdan hala pek bir anlam ifade etmiyor.
Performanstan bahsetmek gerekirse, tablolar çoğunlukla okunuyorsa ve birleştirme sonucuna sık sık ihtiyaç duyuluyorsa, her istendiğinde birleştirmenin tamamını hesaplama ihtiyacını ortadan kaldırmak için dizine alınmış bir görünüm uygulamayı düşünün. Tabii ki bunun için depolama alanı dışında işlem yaparsınız, ancak özellikle% 100 doğruluk gerekiyorsa, performans iyileştirmesi için buna değer olabilir.
Uzun dize değerlerini endeksleme hakkında daha fazla okumak için, bunu tek bir tablo için nasıl yapacağınıza dair bir örnek üzerinde yürüyen bir makale yayınladım ve bu sorudaki tüm senaryoyu denerken dikkate alınması gereken şeyler sunuyor.