Как я связываю ASP.NET FormView с единственной записью?

Если технология не улучшилась способами, которыми я не могу вообразить в последнее время, "В" показанном запросе приведет к результату, это - эффективно осуществление операции ИЛИ трех наборов результатов, один для каждого из значений в "В" списке. В пункте становится условием равенства для каждого списка и будет использовать индекс в подходящих случаях. В случае уникальных идентификаторов и достаточно большой таблицы тогда я ожидал бы, что оптимизатор будет использовать индекс.

, Если объекты в списке должны были быть групповыми однако, и я предполагаю в примере, что "Идентификатор типа" является внешним ключом, тогда я больше интересуюсь распределением. Я задаюсь вопросом, проверит ли оптимизатор статистику на каждое значение в списке? Скажите, что это проверяет первое значение и находит, что находится в 20% строк (достаточно большой таблицы для имения значение). Это будет, вероятно, сканирование таблицы. Но тот же план запросов будет использоваться для других двух, даже если они будут уникальны?

Это, вероятно, спорно - что-то как Список сотрудников, вероятно, будет достаточно маленьким, что это останется кэшируемым в памяти, и Вы, вероятно, не заметили бы различия между этим и индексированным извлечением так или иначе.

И наконец, в то время как я проповедую, остерегаются запроса в В пункте: это часто - быстрый способ получить что-то, что работа и (для меня, по крайней мере) может быть хорошим способом выразить требование, но об этом почти всегда лучше вновь заявляют как соединение. Ваш оптимизатор может быть достаточно умным для определения этого, но с другой стороны он не может. Если Вы в настоящее время не делаете производительности проверки по сравнению с производственными объемами данных, сделайте так - в эти дни оптимизации на основе издержек, Вы не можете быть уверены в плане запросов, пока у Вас нет предельной нагрузки и представительной статистики. Если Вы не можете, затем быть подготовленными к неожиданностям в производстве...

24
задан Jamie Ide 13 July 2009 в 16:34
поделиться

1 ответ

Как говорится в сообщении об ошибке, для работы объект DataSource должен реализовывать IListSource, IEnumerable или IDataSource.

Если у вас есть объект av типа A, который не реализует один из упомянутых интерфейсов, вы можете, как вы говорите, поместить свой объект в список:

C #

var myDataSource = new List<A> {myObject};

VB.NET

Dim myDataSource As List(Of A)(myObject)
18
ответ дан 29 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: