Доступный для редактирования ListView

В качестве общего ответа я бы сказал, нет. Тем не менее, только план выполнения SQL скажет .

В вашем случае вы многократно используете одни и те же выражения агрегации. Даже базовый оптимизатор SQL должен понимать, что они одинаковые и вычислять каждый из них один раз.

Поскольку ваш запрос не имеет условий фильтрации, он читает обе таблицы целиком. Самая большая стоимость вашего запроса, вероятно, связана с порядком соединения. Должен ли он начинаться с payments, а затем идти к users или наоборот? Наличие / отсутствие индексов может быть решающим здесь.

Редактировать:

Теперь, если вы обнаружите, что ваш оптимизатор не настолько умен, вы можете убедиться, что он вычисляет каждую агрегацию только один раз, используя подзапрос (или CTE при использовании MySQL 8.x). Например, вы можете перефразировать ваш запрос как:

select 
  total_sales,
  quantity,
  total_sales / quantity as average_sale, 
  `name`,
  `user_id`
from (
  SELECT 
    SUM(payments.amount) as total_sales, 
    COUNT(payments.id) as quantity, 
    `users`.`name`, 
    `payments`.`user_id` 
  FROM `payments` 
  INNER JOIN `users` on `payments`.`user_id` = `users`.`id` 
  GROUP BY `payments`.`user_id` 
) x
ORDER BY `total_sales` DESC 
21
задан THE DOCTOR 30 April 2009 в 19:14
поделиться

5 ответов

может быть, это может помочь вам:

msdn: как создать ListView с редактируемыми ячейками

-1
ответ дан 29 November 2019 в 21:47
поделиться

Вы задаете неправильный вопрос:)

ListView не является правильным элементом управления. Используйте элемент управления DataGridView . Его можно настроить так, чтобы он выглядел как ListView, но он поддерживает редактирование ячеек на месте.

18
ответ дан 29 November 2019 в 21:47
поделиться

ObjectListView сделает именно это и многое другое. Это оболочка для обычного .NET ListView. Это открытый исходный код.

На его веб-сайте есть Начало работы , чтобы помочь вам начать, а также целая страница, посвященная редактированию ячеек

6
ответ дан 29 November 2019 в 21:47
поделиться

From the sounds of it, you might want to consider using the DataGridView instead.

DataGridView (MSDN)

0
ответ дан 29 November 2019 в 21:47
поделиться

DataGridView - ваш друг SourceGrid является альтернативой

0
ответ дан 29 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

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