Это вопрос три в одном: -)
Насколько эффективными могут быть таблицы
Очень эффективно, если используется правильно. Каждая строка в таблице имеет PartitionKey и Rowkey. При запросе данных это работает очень хорошо, если вы можете уменьшить набор, используя (части) PartitionKey и RowKey. Как только вы начнете фильтрацию по другим столбцам, производительность может очень быстро снизиться. См. Также документы по этой теме.
каков их точный вариант использования
По сути это решение nosql для пары ключ / значение. Он может быть очень эффективным для быстрого и простого хранения простых данных. Это один из самых дешевых вариантов хранения данных. Таблицы не имеют фиксированной схемы (следовательно, nosql) и используются для хранения, например, журналов, данных конфигурации и простых структур данных.
и почему они обычно используются со вспомогательной службой, такой как Azure. CosmosDB.
Дело не в этом. Хранилище таблиц Azure можно использовать отдельно. CosmosDB имеет API таблиц, который позволяет использовать CosmosDB против кода, написанного для хранилища таблиц Azure, без изменений кода. Это обеспечивает высокую производительность, поскольку индексируются не только PartitionKey и Rowkey, но и все остальные столбцы. Так что, как только вы начнете фильтровать по другим столбцам, производительность все равно будет очень хорошей. Но это будет стоить вам дороже в денежном выражении.
Хранение данных лучше всего осуществлять с использованием пакетов, поскольку данные записываются на раздел. См. Ответ Ивана.
Еще немного материала о том, когда его использовать:
https://markheath.net/post/azure-tables-what-are-they-good-for
https://blogs.msdn.microsoft.com/brunoterkaly/2013/01/13/knowing-when-to-choose-windows-azure-table-storage-or-windows-azure-sql-database/