Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# Lecture seule — timing des patterns SQL BATIK_TEST (OLE DB HFSQL)
$ErrorActionPreference = "Stop"
$connStr = "Provider=PCSoft.HFSQL;Data Source=127.0.0.1;Port=4900;Initial Catalog=BATIK_TEST;User ID=susana;Password=123;"
function TimeQuery($cn, $sql) {
$sw = [System.Diagnostics.Stopwatch]::StartNew()
$rs = New-Object -ComObject ADODB.Recordset
$rs.Open($sql, $cn, 1, 1)
$n = 0
while (-not $rs.EOF) { $n++; $rs.MoveNext() }
$rs.Close()
$sw.Stop()
return "$([math]::Round($sw.Elapsed.TotalSeconds,2))s rows=$n"
}
$cn = New-Object -ComObject ADODB.Connection
$cn.ConnectionTimeout = 15
$cn.Open($connStr)
Write-Host "CONNECTED"
# Full scans (reproduces the current bottleneck)
Write-Host "--- FULL SCANS ---"
Write-Host ("Intervention (25 cols) : " + (TimeQuery $cn "SELECT IN_PKID, IN_RefInterne, IN_IDClient, IN_IDLieu, IN_IDDossier, IN_IDTypeIntervention, IN_IDEtatIntervention, IN_Titre, IN_NumIntervention, IN_DateIntervention, IN_DureePrevue, IN_NumDevis, IN_NumFacture, Archive, IN_NoteInterne, IN_Description, IN_RefExterne, IN_IDSociete, IN_IDDemandeur, IN_IDSuiviPar, IN_IDImport, IN_AttestationTVAPresente FROM Intervention"))
Write-Host ("Intervention_Personne (3 cols): " + (TimeQuery $cn "SELECT IP_PKID, IP_IDIntervention, IP_IDPersonne FROM Intervention_Personne"))
Write-Host ("EtatIntervention (6 cols) : " + (TimeQuery $cn "SELECT EI_PKID, EI_IDEtat, EI_DateDebut, EI_DateFin, EI_Description, EI_IDIntervention FROM EtatIntervention"))
Write-Host ("Personne (3 cols) : " + (TimeQuery $cn "SELECT PE_PKID, PE_Nom, PE_Prenom FROM Personne"))
# LIMIT pagination test
Write-Host "--- LIMIT / TOP ---"
Write-Host ("Intervention LIMIT 0,200 : " + (TimeQuery $cn "SELECT IN_PKID, IN_RefInterne, IN_Titre FROM Intervention ORDER BY IN_DateIntervention DESC LIMIT 0,200"))
Write-Host ("Intervention TOP 200 : " + (TimeQuery $cn "SELECT TOP 200 IN_PKID, IN_RefInterne, IN_Titre FROM Intervention ORDER BY IN_DateIntervention DESC"))
# WHERE IN test (200 ids) on Intervention_Personne
$rsIds = New-Object -ComObject ADODB.Recordset
$rsIds.Open("SELECT IN_PKID FROM Intervention ORDER BY IN_DateIntervention DESC LIMIT 0,200", $cn, 1, 1)
$list = New-Object System.Collections.Generic.List[string]
while (-not $rsIds.EOF -and $list.Count -lt 200) { $list.Add([string]$rsIds.Fields.Item("IN_PKID").Value); $rsIds.MoveNext() }
$rsIds.Close()
$inClause = ($list -join ",")
Write-Host "--- WHERE IN (200 intervention ids) ---"
Write-Host ("Intervention_Personne WHERE IN : " + (TimeQuery $cn "SELECT IP_PKID, IP_IDIntervention, IP_IDPersonne FROM Intervention_Personne WHERE IP_IDIntervention IN ($inClause)"))
Write-Host ("EtatIntervention WHERE IN : " + (TimeQuery $cn "SELECT EI_PKID, EI_IDEtat, EI_DateDebut, EI_DateFin, EI_Description, EI_IDIntervention FROM EtatIntervention WHERE EI_IDIntervention IN ($inClause)"))
$cn.Close()
Write-Host "DONE"