Verhoogde doorvoersnelheid met Teamleader Focus V1 en V2 API-tabellen

Go to English version

Teamleader Focus groei in rapportage

Teamleader Focus is door de jaren heen uitgebreid en verbeterd, net als Invantive SQL en gerelateerde producten zoals de Power BI-connector. Ook is de gebruikersgemeenschap van Teamleader Focus gegroeid met grotere bedrijven en bedrijven hebben een groeiend datavolume in verzameld in hun Teamleader Focus database.

Veel gebruikers gebruiken Invantive-gebaseerde producten om gegevens uit te wisselen met Teamleader Focus, bijvoorbeeld voor rapportagedoeleinden. De beperkingen van de V1, V2 en nieuwe-projecten API’s vereisen een aanzienlijke hoeveelheid werk en tabellen om het volledige beeld vast te stellen. Het aantal tabellen en datavolumes van elk zijn gegroeid, waardoor rapporten langzamer lopen.

Prestatieverbeteringen

Vanaf release 22.0.706 zijn een aantal nieuwe prestatieverbeteringen van zowel Teamleader als Invantive opgenomen in de Teamleader-driver. Om concurrentieredenen worden er geen verdere details gegeven. De doorvoer is in veel scenario’s met een factor twee toegenomen, terwijl in specifieke scenario’s de doorvoer met een factor 3 is toegenomen.

De prestatieverbetering geldt voor alle bestaande queries. Er zijn geen wijzigingen nodig in de bestaande logica of rapporten. De daadwerkelijke snelheidsverbeteringen variëren afhankelijk van de Teamleader-tabellen die worden benaderd en de mate van parallellisme. De prestatiewinst is het meest zichtbaar wanneer gegevens parallel worden gedownload, zoals met Power BI van tabellen waarvoor vele duizenden API-aanroepen nodig zijn, zoals de V1Flat en V2Flat schema’s (zie ook Wat zijn tabelfuncties en tabelfunctieparameters?).

De prestatiewinst met identieke gemeenschappelijke hardwarebronnen die beschikbaar zijn gesteld, wordt weergegeven in de onderstaande tabel voor zowel alleen API V1 doorvoer, API V2 doorvoer als gemengde V1/V2 tabellen:

Variant 22.0.705 (sec) 22.0.706 (sec) Factor (%)
V1 186 60 310
V2 185 73 253
Mix 333 100 333

De release van Invantive SQL met deze Teamleader-verbeteringen zal naar verwachting beschikbaar zijn op Invantive Cloud voor 3 augustus 2023.

SQL-code om snelheid te meten

Metingen werden uitgevoerd met de volgende Invantive PSQL-code:

declare
  l_cnt pls_integer;
begin
  --
  -- Execute 250+ API calls to retrieve each project's 
  -- individual custom fields.
  --
  set use-http-disk-cache false;
  set use-http-memory-cache false;
  --
  select count(*) into l_cnt from (select * from teamleader.v1flat.projectsall limit 250);
  dbms_output.put_line('V1 start: ' || to_char(sysdateutc, 'HH24MISS'));
  for i1 in 1..10
  loop
    select count(*) into l_cnt from (select * from teamleader.v1flat.projectsall limit 25);
  end loop;
  dbms_output.put_line('V1 end: ' || to_char(sysdateutc, 'HH24MISS'));
  --
  select count(*) into l_cnt from (select * from teamleader.v2flat.projectsall limit 250);
  dbms_output.put_line('V2 start: ' || to_char(sysdateutc, 'HH24MISS'));
  for i2 in 1..10
  loop
    select count(*) into l_cnt from (select * from teamleader.v2flat.projectsall limit 25);
  end loop;
  dbms_output.put_line('V2 end: ' || to_char(sysdateutc, 'HH24MISS'));
  --
  -- Interleaved variant:
  --
  for i3 in 1..10
  loop
    select count(*) into l_cnt from (select * from teamleader.v1flat.projectsall limit 25);
    select count(*) into l_cnt from (select * from teamleader.v2flat.projectsall limit 25);
  end loop;
  --
  dbms_output.put_line('Interleaved start: ' || to_char(sysdateutc, 'HH24MISS'));
  for i4 in 1..10
  loop
    select count(*) into l_cnt from (select * from teamleader.v1flat.projectsall limit 25);
    select count(*) into l_cnt from (select * from teamleader.v2flat.projectsall limit 25);
  end loop;
  dbms_output.put_line('Interleaved end: ' || to_char(sysdateutc, 'HH24MISS'));
end;