2016-04-13 19 views
0

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

5

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.

+0

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