Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 29.06.2013
Сообщений: 42

Оптимизация запросов SQL в C#

04.12.2015, 21:57. Показов 2253. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Коротко расскажу о задаче своей. Есть реально большая база данных(порядка миллиона строк). Есть поле под название id_deal, которое для группы строк одинаково. То есть например первые 5 строк имеют одинаковый id_deal, потом следующие 3 имеют одинаковый и тп. Так выходит порядка 110 тысяч групп строк с одинаковыми id_deal. Есть другое поле под названием deal_am. Мне нужно для каждой группы строк с одинаковыми id_deal посчитать сумму deal_am для этой группы(т.е сложить все deal_am каждой строки из группы).
Делаю это следующим образом:
Сначала кидаю запрос на получение уникальных id_deal в таблице. Получим таблицу со всеми id_deal.
C#
1
 sql = "SELECT DISTINCT id_deal FROM all_trades";
Эта штука выполняется быстро. Там получается порядка 110 тысяч уникальных id_deal.

А дальше я делаю вот так :
C#
1
 sql = "SELECT sum(deal_am) from all_trades WHERE id_deal = @id"
И это все в цикле по каждому id (а таких как написано выше 110 тысяч с копейками)

Для таблицы с 1000 уникальных id программа работает пару минут. Но для такой базы тут будет часа 2 работы...
У кого какие мысли насчет оптимизации этого? Чтобы укладывалось в минут 15-20 максимум.
Надеюсь вопрос понятен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2015, 21:57
Ответы с готовыми решениями:

оптимизация sql запросов
интересно как вы оптимизируете sql запросы в ваших скриптах поделитесь идеями и опытом ?

Оптимизация и ускорение запросов в SQL
Доброго дня Запрос впринципе ничего сложного. Имеется 32 элемента которые ищутся в SQL базе данных и возврашаются в TextBox значения...

MS SQL Server 2008 - 2012. Оптимизация запросов
Доброго времени суток, граждане. Хочется прокачать скилл написания оптимальных SQL-запросов. Базовые знания которые позволяют читать...

3
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
04.12.2015, 23:27
SQL
1
SELECT id_deal, SUM(deal_am) FROM all_trades GROUP BY id_deal
Если сделаете индекс по id_deal, запрос будет гораздо быстрее.
1
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
04.12.2015, 23:28
SQL
1
2
3
 SELECT id_deal, SUM(deal_am)
  FROM you_table
  GROUP BY id_deal;
1
2 / 2 / 1
Регистрация: 29.06.2013
Сообщений: 42
05.12.2015, 00:51  [ТС]
Огромное спасибо. Работает за 30 секунд примерно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2015, 00:51
Помогаю со студенческими работами здесь

Оптимизация запросов
Здравствуйте. Стоит задача написать форум. Темы сортируются по дате. Увеличивается время выборки данных из БД. Подскажите как можно...

Оптимизация запросов
Как можно оптимизировать запрос, в котором используется оператор 'LIKE'?? Запрос: << select * from tab1 where tff like:...

Оптимизация запросов
Всем добрый день ! Мне необходимо оптимизировать запросы ко многим таблицам, то есть структура моей основной таблицы с данными реализована...

Оптимизация запросов
Где можно коротко и ясно прочитать про оптимизацию запросов и использование планов выполнения запросов?

Оптимизация запросов
Здравствуйте! Помоги те пожалуйста написать запросы...очень нужно...спасибо за ранее) Задача "Королевские дома Европы" ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru