2016-04-13 4 views
0

Я пытаюсь запросить столбец timestamp на лазурной табличной памяти. У меня есть условие where, которое проверяет, превышает ли значение ввода значение timestamp. azure Timestamp column не является ключом раздела или строкой. Я узнал, что запрос к столбцу, который не является разделом или строкой, приведет к снижению производительности выполнения запроса. Мое приложение очень медленно, когда все больше и больше записей. Я попытался переместить данные временных меток для разделения данных ключа, но ключ раздела не принимает значение отметки времени, например «4/13/2016 5:20:03 AM +00: 00». Что было бы лучшим вариантом для повышения производительности запросов.Выполнение запроса на лазурном хранении очень медленное

ответ

5

Как уже упоминалось, если запрос не содержит 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/.

+0

по этой фразе «Символы, запрещенные в ключевых полях», я вижу таблицы хранения с символами. Ограничение предназначено для символов или для специальных символов? – Kurkula

Смежные вопросы