Как минимизировать задержку между службой приложений Azure и базой данных SQL Azure?

У нас есть приложение службы приложений Azure, использующее Java Tomcat 8. 5 работает в Западном регионе США. План обслуживания для этой службы является стандартным, большим.

Это приложение службы приложений подключено к службе базы данных SQL, которая принадлежит к эластичной группе также в западных штатах США, план обслуживания которой является стандартным 1200 eDTU.

Проблема у нас сталкивается с очень низкой производительностью между взаимодействием обоих серверов.

Мы тестировали, вызывая RESTful WebService в службе приложений, которая должна вставить 50 записей в 2 таблицы в базе данных. Всего вставлено 100 записей. Для выполнения этой задачи требуется 3000 мс.

Мы измерили это, сохранив временные метки между началом процесса вставки и окончанием вставки. Таким образом, время между локальным клиентом и службой приложений не учитывается.

Это определения 2 таблиц, в которые служба вставляет записи:

CREATE TABLE [dbo].[Vehiculo](
   [Id] [decimal](18, 0) IDENTITY(1,1) NOT NULL,
   [CodigoCliente] [int] NOT NULL,
   [NumeroVehiculo] [int] NOT NULL,
   [Denominacion] [varchar](99) NOT NULL,
   [NumeroTarjeta] [int] NULL,
   [Placa] [varchar](10) NULL,
   [CuentaPresupuestal] [varchar](99) NULL,
   [NumeroPatrimonial] [varchar](99) NULL,
   [Grupo] [varchar](99) NULL,
   [NumeroEconomico] [varchar](99) NULL,
   [ClienteId] [decimal](18, 0) NULL,
   [UltimaActualizacion] [datetime] NULL,
   [Tenant] [varchar](50) NULL,
   [IdOrigenDeDatos] [decimal](18, 0) NOT NULL,
   [FechaAlta] [datetime] NOT NULL,
   [FechaUltimaModificacion] [datetime] NOT NULL,
   [PrimerActualizacion] [datetime] NOT NULL,
 CONSTRAINT [PK_Vehiculo] PRIMARY KEY CLUSTERED 
(
   [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
 ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


CREATE TABLE [dbo].[Cliente](
    [Id] [decimal](18, 0) IDENTITY(1,1) NOT NULL,
    [Codigo] [int] NOT NULL,
    [Denominacion] [varchar](255) NOT NULL,
    [CondicionVenta] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [TipoDeValor] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [PlazoDePago] [int] NOT NULL DEFAULT ((0)),
    [UltimaActualizacion] [datetime] NULL,
    [Tipo] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Grupo] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Zona] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [EjecutivoDeCuenta] [varchar](50) NOT NULL DEFAULT ('NO INFORMADO'),
    [Clasificador] [varchar](20) NOT NULL DEFAULT ('CLIENT'),
    [Indicador001] [varchar](50) NULL,
    [FechaIndicador001] [datetime] NULL,
    [Indicador002] [varchar](50) NULL,
    [FechaIndicador002] [datetime] NULL,
    [Geolocalizacion] [varchar](50) NULL,
    [Latitud] [decimal](8, 6) NULL,
    [Longitud] [decimal](9, 6) NULL,
    [Colonia] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Delegacion] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Ciudad] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Estado] [varchar](50) NOT NULL DEFAULT ('N/A'),
    [Correo] [varchar](200) NULL,
    [Tenant] [varchar](50) NULL,
    [IdOrigenDeDatos] [decimal](18, 0) NOT NULL,
    [FechaAlta] [datetime] NOT NULL,
    [FechaUltimaModificacion] [datetime] NOT NULL,
    [PrimerActualizacion] [datetime] NOT NULL,
 CONSTRAINT [PK_Cliente] PRIMARY KEY CLUSTERED 
 (
    [Id] ASC
 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
 ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
 ) ON [PRIMARY]

Как вы можете видеть, первая таблица Vehiculo имеет 17 столбцов, а Cliente - 29 столбцов.

1
задан 21 September 2018 в 18:36
1 ответ

Вы мало что можете сделать, чтобы контролировать близость виртуальной машины к базе данных SQL, кроме того, чтобы убедиться, что они находятся в одном регионе и в одной зоне доступности, если вы их используете. Вот несколько моментов, на которые следует обратить внимание:

  • Вы можете включить ускоренное сетевое управление на своей виртуальной машине для увеличения пропускной способности сети.
  • Если вы используете какой-либо вид VPN или Express Route для обратного подключения к локальным ресурсам, убедитесь, что трафик от виртуальной машины IaaS к PaaS SQL не направляется обратно в локальную сеть и из Интернета
  • . Посмотрите на использование некоторых диагностических инструментов в Azure для измерения производительности, таких как Azure Monitor, Network Watcher и инструменты мониторинга SQL, чтобы узнать, вы можете обнаружить любые проблемы
0
ответ дан 4 December 2019 в 03:39

Теги

Похожие вопросы