Я пытаюсь запросить столбец timestamp на лазурной табличной памяти. У меня есть условие where, которое проверяет, превышает ли значение ввода значение timestamp. azure Timestamp column не является ключом раздела или строкой. Я узнал, что запрос к столбцу, который не является разделом или строкой, приведет к снижению производительности выполнения запроса. Мое приложение очень медленно, когда все больше и больше записей. Я попытался переместить данные временных меток для разделения данных ключа, но ключ раздела не принимает значение отметки времени, например «4/13/2016 5:20:03 AM +00: 00». Что было бы лучшим вариантом для повышения производительности запросов.Выполнение запроса на лазурном хранении очень медленное
ответ
Как уже упоминалось, если запрос не содержит PartitionKey
и/или RowKey
, запросы будут медленными, поскольку служба таблицы выполняет полное сканирование таблицы. Рекомендация должна заключаться в использовании значения даты/времени в качестве значения PartitionKey
.
Я пытался переместить данные временные штампов для разделения ключевых данных, но раздел ключа не принимающее значения времени штампа, как «4/13/2016 5:20:03 AM +00: 00»
Это потому, что значение содержит символы, которые недопустимы (https://msdn.microsoft.com/en-us/library/azure/dd179338.aspx -> см. Раздел Characters Disallowed in Key Fields
).
Там на самом деле целый ряд вещей, которые вы могли бы сделать, чтобы решить эту проблему:
- Вы можете отформатировать дату/значение времени в формате
YYYY-MM-DDThh:mm:ss
. Вы можете преобразовать значение даты/времени в тики и добавить некоторые нули спереди и сохранить это для PartitionKey. Что-то вроде:
PartitionKey Value = YourDateTimeValue.Ticks.ToString ("d19");
Если вы хотите, самые последние записи прийти на вершине, вы могли бы сделать что-то вроде:
PartitionKey Value = (DateTime.MaxValue.Ticks - YourDateTimeValue.Ticks).ToString("d19");
Вы также можете найти это полезным: https://azure.microsoft.com/en-in/documentation/articles/storage-table-design-guide/.
по этой фразе «Символы, запрещенные в ключевых полях», я вижу таблицы хранения с символами. Ограничение предназначено для символов или для специальных символов? – Kurkula