В моей базе данных довольно большая таблица, текущий размер 2 852,305 MB
.Я могу довольно быстро запросить эту базу данных, используя экземпляр localdb
на моем компьютере разработчика, около 100 мс.
Однако с точно таким же запросом и данными это занимает колоссальные 70 секунд в базе данных SQL Azure с 20 DTU (S1)!
Я читал об этом, TL; DR : использование индексов для запроса может решить проблему.
http://capesean.co.za/fixing-slow-performance-with-azure-sql-database/
Я использую Entity Framework, поэтому я добавил Index
и попытался запустить Update-Database
из PMC
как обычно.
https://docs.microsoft.com/en-us/ef/ef6/modeling/code-first/data-annotations#multiple-column-indexes
Однако индекс не добавлен, я получаю сообщение об ошибке Object '/.rem' has been disconnected or does not exist at the server.
.Я читал о том же коде ошибки ниже, но, учитывая обстоятельства, я не контролирую время жизни объекта.
«Объект был отключен или не существует на сервере», исключение
Что я могу сделать, чтобы это исправить?
Вероятно, это также не проблема тайм-аута, и у миграции, и у ApplicationDbContext
есть тайм-ауты.
internal sealed class Configuration : DbMigrationsConfiguration<ApplicationDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
CommandTimeout = 10000; // migration timeout
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
//Log to output
Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
//Prevent timeouts
Database.CommandTimeout = 1800;
}
...
Полная трассировка стека:
System.Runtime.Remoting.RemotingException: объект '/2f49096e_0c2e_49d6_a7a0_7ffbe823cf87/yxyu+vuywlowzb7myk8fhrw4_7932.rem' сервер отключен или не существует в данный момент.в System.Data.Entity.Migrations.Design.ToolingFacade.ToolLogger.Verbose (String sql) в System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql (MigrationStatement migrationStatement, соединение приемного соединения DbConnection, переход DbConnection, переход в DbConnection.Data.Entity.System.Data.Entity.Migrations.DbMigrator.ExecuteStatementsInternal (операция IEnumerable 1
migrationStatements, DbConnection connection) at
System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClass32.<ExecuteStatements>b__30()
at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()
at
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func
1) в System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute (операция Action) в System.Data.Entity.Migrations.DbMigrator.Exnte1053 * 1igrationStatements) в System.Data.Entity.Migrations.Infrastructure.MigratorBase.ExecuteStatements (IEnumerable 1
migrationStatements) at
System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String
migrationId, VersionedModel targetModel, IEnumerable
1 операций, IEnumerable 1 systemOperations, Boolean downgrading, Boolean auto)<br>
at System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration
migration, DbMigration lastMigration) at
System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration
migration, DbMigration lastMigration) at
System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable
1 pendingMigrations, String targetMigrationId, String lastMigrationId)
в System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Uprations1 pendingMingtargetMigrationId, String lastMigrationId)
в System.Data.Entity.Migrations.DbMigrator.UpdateInternal (String targetMigration) в System.Data.Entity.Migrations.DbMigrator. <> c__DisplayClasse.b__d () в System.Data.Entity.Migrations.DbMigrator..Infrastructure.MigratorBase.Update (String targetMigration) в System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore () в System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run () Объект '/2f49096e_0c2e_49d6_a7a0_7ffbe823cf87/yxyu+vuywlowzb7myk8fhrw4_7932.rem' отключен или не существует на сервере.