Наблюдается низкая производительность при синхронизации таблицы ссылок с использованием upsert с составным ключом на mssql
по сравнению с mysql
.
При выполнении этой операции на mysql
синхронизации 14000 записей это занимает около 0,7 минуты, тогда как синхронизация с БД Azure с использованием mssql
занимает 21 минуту.
Вот моя схема:
students_groups: this.sequelize.define(
'students_groups',
students_groups: {
student: Sequelize.STRING(24),
group: Sequelize.STRING(24),
active: Sequelize.BOOLEAN,
},
{
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
indexes: [
{
fields: ['student'],
},
{
fields: ['group'],
},
{
fields: ['student', 'group'],
unique: true
}
],
}
)
Это цикл
await this.SQLSchemas['students_groups'].sync().then(async () => {
for(let record of records) {
const where: any = {};
where['student'] = '123456789123';
where['group'] = '234567891234';
await this.SQLSchemas['students_groups'].upsert(
record,
{
where: where
}
);
}
});
Пример записи:
{
student: '123456789123',
group: '234567891234',
active: 1
}