Цитата:
Сообщение от
fed
Меня больше всего интересует - почему в tempDb такая небольшая разница между Azure SQL и локальным SQL. Такое ощущение что у них в Azure какой-то мегалоггинг, который огромное время занимает. По обычной БД он срабатывает, а по tempdb - нет.
Хотя с другой стороны и по select'ам из tempDB разница небольшая, что вообще необъяснимо в моих пределах понимания.
P.S. Ооо - прочитал идею Vadik насчет синхронного коммита в другой регион. Ну да - вариант интересный и задержки по записи в обычную БД легко объясняет. Но задержки по чтению - как-то не очень.
А там для tempDB вот такой код используется:
X++:
private container checkTempDBTemptable()
{
PerformanceCheckTableTmp tmpCheckTable;
PerformanceCheckTable checkTable;
int64 insertTime, queryTime;
str strDummy;
System.Diagnostics.Stopwatch sw;
;
if (!useTableCache)
{
tmpCheckTable.disableCache(true);
checkTable.disableCache(true);
}
sw = new System.Diagnostics.Stopwatch();
sw.Start();
ttsBegin;
insert_recordset tmpCheckTable (IntFieldKey, IntField1, IntField2, StringField3, DateField1, DateTimeField2)
select IntFieldKey, IntField1, IntField2, StringField3, DateField1, DateTimeField2
from checkTable where checkTable.IntField1 >= startCount && checkTable.IntField1 <= recordCount;
ttsCommit;
sw.Stop();
insertTime = sw.get_ElapsedMilliseconds();
sw.Reset();
sw.Start();
while select * from tmpCheckTable
{
strDummy = tmpCheckTable.StringField3;
}
sw.Stop();
queryTime = sw.get_ElapsedMilliseconds();
return [insertTime, queryTime];
}
где PerformanceCheckTableTmp - это
InMemory талдычка (!).
Не означает ли это что реально данный тест меряет не скорость вставки в tempDB, а скорость начитки из БД и вставки в InMemory табличку (что при большом объеме превращается в запись на жесткий диск аоса).
Что же мы меряем этим тестом ? Скорость винчестера на аосе ?
Это похоже на правду, тем более что в большинстве измерений замеры
Цитата:
Tempdb Temp table Inserts : xxx1, Selects : xxx2
и
Цитата:
inMemory Temp table (AOS) Inserts : yyy1, Selects : yyy2
практически одинаковы. Если бы запись шла реально в tempDB то хоть где то должен был бы попасться замер с сильно отличающимися значениями.