Le projet que je travaille sur a beaucoup de IN-requêtes telles que:Passez un tableau comme valeur dans un ado.net DBParameter
SELECT something, anotherthing
FROM atable
WHERE something IN (value1, value2, value3)
Ceci est un exemple d'une requête avec 3 paramètres IN -part mais la même requête pourrait être exécutée avec 1 ou 2 ou 5 ou 10 ou ... paramètres. Le problème est que chaque requête a un autre plan d'exécution dans la base de données avec le ralentit.
Je voudrais Hava une requête comme ceci:
SELECT something, anotherthing
FROM atable
WHERE something IN (@value1, @value2, @value3)
ou ceci:
SELECT something, anotherthing
FROM atable
WHERE something IN (@values)
j'ai accompli la première requête avec une fonction d'aide, mais je dois encore différent plan d'exécution par nombre de paramètres. Cela pourrait être résolu avec le second.
Quelle est la meilleure façon de passer un tableau en tant que paramètre de base de données? J'utilise Oracle et SQL Server, les solutions pour les deux sont les bienvenues.
Malheureusement, je dois prendre en charge SQL Server 2000 et 2005, pas de paramètre de table pour moi. – Jochen