J'ai intégré le framework SQLite.swift dans un de mes projets swift et tout fonctionnait bien jusqu'à ce que j'ajoute la requête ci-dessous. Après avoir ajouté le projet de requête ci-dessous prend trop de temps à construire. J'ai attendu 30 minutes mais le projet n'est toujours pas respecté.Le projet prend trop de temps à construire et à exécuter après l'ajout d'une requête complexe
do
{
let stmt = try DB!.prepare ("SELECT e." + ENDPOINT_ID + " as _id, lk." + HUB_ID + ", e." + X_ENDPOINT_ID + ", e." + ENDPOINT_DESC + ", e." + ENDPOINT_TYPE_ID +", et." + ENDPOINT_STATUS_MIN + ", et." + ENDPOINT_STATUS_MAX + ", e." + ENDPOINT_STATUS + " FROM " + TABLE_ENDPOINT + " as e INNER JOIN " + TABLE_ENDPOINT_TYPE + " as et " +
" ON e." + ENDPOINT_TYPE_ID + " = et." + ENDPOINT_TYPE_ID +
" INNER JOIN " + TABLE_LINKING + " as lk " +
" ON e." + ENDPOINT_ID + " = lk." + ENDPOINT_ID +
" INNER JOIN " + TABLE_NODE + " as n " +
" ON lk." + NODE_ID + " = n." + NODE_ID +
" INNER JOIN " + TABLE_NODE_TYPE + " as nt " +
" ON n." + NODE_TYPE_ID + " = nt." + NODE_TYPE_ID +
" WHERE lk." + SECTION_ID + "=" + section_Id +
" AND nt." + NODE_CATEGORY + " = "S" " +
" ORDER BY e." + ENDPOINT_ID + " ASC")
let arr = Array(try stmt.run)
print("\(arr)")
return arr
} catch {
print("failed: \(error)")
return []
}
Si je commente le code ci-dessus et essayer de lancer le projet, il prend à peine une minute pour exécuter le projet, mais après avoir ajouté ce code, il prend beaucoup de l'enfer du temps. J'ai attendu près de 30 minutes, mais le projet n'est toujours pas compilé, ni aucune erreur. Merci d'avance pour l'aide
Pourquoi utiliser une concaténation de chaîne? Utilisez une seule chaîne et une interpolation de chaîne ou utilisez un format de chaîne. – rmaddy
Bien sûr, il existe toujours plusieurs façons de résoudre un problème. C'est l'un d'eux. Construire une seule chaîne avec plus de 20 variables pour l'interpoler est à mon humble avis pas un bon choix d'un aspect de la maintabilité. – zisoft