J'ai essayé d'exécuter une requête comme:En utilisant plusieurs jointures dans une requête SQLite en C#
Insert into Members
SELECT People.id, Names.value., Ages.value FROM People
LEFT JOIN Names on Names.id = People.id
LEFT JOIN Ages on Ages.id = People.id
Il fonctionne bien lorsqu'il est exécuté dans le gestionnaire SQLite (secondes couple). Mais prend un temps inacceptable à exécuter quand je l'exécute dans mon programme (arrêté de l'attendre ...). J'ai essayé mon propre wrapper ExecuteNonQuery (pour la classe) ainsi que command.ExecuteNonQuery()
Toutes les autres requêtes (jointures/insertions incluses) fonctionnent bien, c'est juste cette partie. J'ai essayé de faire les jointures en tant que vues, tempTables toutes les sortes de variations de requête, qui fonctionnent dans le gestionnaire SQLite, mais pas ma solution :(
Mes données actuellement seulement quelques milliers de lignes, mais seront plus d'un million lorsque Il s'agit d'une requête unique dans le cadre d'une importation de données J'utilise System.Data.SQLite
Y a-t-il des problèmes connus pour faire plusieurs jointures/grandes insertions de cette façon? (mes autres requêtes sont retournées beaucoup plus petites résultats résultat)
tas Merci. Je viens de faire les index, les inserts sont super rapides maintenant! Je sais que c'était évident ... Je créais tous mes index à la fois après avoir fait tout mon importation, pensant que je maximiserais les performances de l'insert ... Depuis mon processus d'importation est un insert en vrac efficacement, et l'application est lu une seule fois importé, je suppose que je suis dans l'ensemble je ne suis pas sauver tout le temps ... Merci encore, il était évident et une erreur de noob, mais je besoin de quelqu'un pour me dire :) – DougF
Pourquoi la référence à LINQ? Je ne vois aucun linq dans la question ou la réponse. –
@AndrewArnott "Dois-je enquêter sur Linq ou similaire (en regardant les questions connexes)." voir la dernière ligne de la question. –