Ожидается ли, что запрос, выполненный через хранимый процесс, имеет более высокую стоимость RU (почти в два раза), чем запрос того же запроса, выполненного через sdk или портал?
Этот тестовый код показывает выполнение обоих случаевзапрос к одному документу с помощью sectionKey и идентификатора документа.
Простой запрос, выполняемый с помощью хранимого процесса
Простой хранимый процесс для проверки выполнения одного документа по идентификатору.Поскольку это выполняется в пределах одного раздела, это должно привести к прямому запросу к разделу и идентификатору документа.
function testProc(id, props) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
// Validate input.
if (!id) throw new Error("The id is undefined or null.");
if (!props) throw new Error("The update is undefined or null.");
tryQuery();
function tryQuery() {
var query = {query: "select * from root r where r.id = @id", parameters: [{name: "@id", value: id}]};
var isAccepted = collection.queryDocuments(collectionLink, query, function (err, documents, responseOptions) {
if (err) throw err;
if (documents.length == 1) {
// Update props
} else {
// Else a document with the given id does not exist..
throw new Error("Document not found.");
}
});
// If we hit execution bounds - throw an exception.
// This is highly unlikely given that this is a query by id; but is included to serve as an example for larger queries.
if (!isAccepted) {
throw new Error("The stored procedure timed out.");
}
}
}
Плата за запрос: 5.68 RU
Прямой запрос на портале
SELECT * FROM c where c.partitionKey = 'Tenant_8_u768f5c6b-ef6d-4cd9-8ad0-ae0c68eb9887@mail.com' and c.id = 'c12a3dbd-ad19-41d6-971b-79e0c7acec41'
Плата за запрос: 2.890 RU
Я могу принять только в соответствии с единицами запроса космоса и документацией о пропускной способности это несоответствие возникает из-за физических издержек вычислительных ресурсов (ЦП / памяти), необходимых для запуска самого хранимого процесса.
Для простого запроса вытащить документ по разделу и идентификатору кажетсядовольно высокий, хотя.