Azure masa deposunda zaman damgası sütununa karşı sorgu oluşturmaya çalışıyorum. Giriş değerinin zaman damgası değerinden daha büyük olup olmadığını kontrol eden bir koşulum var. azure Zaman damgası sütunu, bir bölüm anahtarı veya satır anahtarı değildir. Bölümleme olmayan sütunlara karşı sorgulama geldi ya da satır anahtarı, sorgu yürütme performansını azaltacaktır. Daha fazla kayıt olduğunda başvurum çok yavaş. Zaman damgası verilerini bölüm anahtar verilerine taşımaya çalıştım ancak bölüm anahtarı "4/13/2016 5:20:03 AM00: 00" gibi zaman damgası değerini kabul etmiyor. Sorgu performansını artırmak için en iyi seçenek ne olurdu.Azure depolamada sorgu yürütme çok yavaş
cevap
Zaten belirttiğiniz gibi, bir sorgu PartitionKey
ve/veya RowKey
içermiyorsa, Tablo hizmeti tam tablo taraması gerçekleştirdiği için sorgular yavaş olacaktır. Tavsiye, tarih/saat değerini PartitionKey
değeri olarak kullanmak olacaktır. ": 00 2016/04/13 05:20:03 00"
Ben anahtar verileri ancak benzeri bölme anahtar kabul etmiyor zamanlama değeri bölme zaman damgaları veri taşımak için çalıştı
Bunun nedeni, değere izin verilmeyen karakterler içeriyor olmasıdır (https://msdn.microsoft.com/en-us/library/azure/dd179338.aspx -> bkz.
Characters Disallowed in Key Fields
bölümü).
- Sen
YYYY-MM-DDThh:mm:ss
formatında tarih/saat değerini biçimlendirebilirsiniz:aslında bu sorunu çözmek için yapabileceği şeylerin bir dizi konum.
Tarih/saat değerini kenelere dönüştürebilir ve öndeki bazı sıfırları başlatabilir ve PartitionKey için kaydedebilirsiniz. Şunlar gibi:
PartitionKey Value = YourDateTimeValue.Ticks.ToString ("d19"); Ayrıca bu yararlı bulabilirler
PartitionKey Value = (DateTime.MaxValue.Ticks - YourDateTimeValue.Ticks).ToString("d19");
: https://azure.microsoft.com/en-in/documentation/articles/storage-table-design-guide/ en yeni girişleri üstüne gelmek isterseniz
, gibi bir şey yapabilirdi.
Bu deyimde "Anahtar Alanlara İzin Verilmeyen Karakterler", bazı depolama tablolarını karakterlerle birlikte görüyorum. Kısıtlama karakterler veya özel karakterler içindir? – Kurkula