Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для yurembo
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112

Оптимизация работы растущей базы данных, соединение с которой - через Интернет

28.02.2012, 01:27. Показов 1940. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Помогите пожалуйста...Создал базу (MS SQL Express), написал программу которая с ней работает... Вначале как бы ничего, но...клиенты подключаются к базе через интернет, у некоторых он не очень качественный (пинг и скорость!!), а когда сейчас уже много записей в таблицах базы (больше 10000) тяжело загружаются таблицы, а иногда с ошибками типа: "Удаленный сервер не отвечает" и т.д.
Как можно оптимизировать работу базы, а именно загрузку таблиц, усовершенствовать программу или что-то в этом роде...Могу представить фрагменты программы где идет загрузка таблиц:

1. Фрагмент основной программы:

C#
1
2
3
4
5
6
7
8
***
GetDataDLL.GetData table = new GetData();
            DataTable DTable = table.GetAllClientsAsDataTable("select * from tb_Fuel");
            DTable.Locale = System.Globalization.CultureInfo.InvariantCulture;
            bindingSource1.DataSource = DTable;
            dataGridView1.AutoResizeColumns(
            DataGridViewAutoSizeColumnsMode.AllCells);
***
2. Класт GetData:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace GetDataDLL
{
    public class GetData
    {
        public DataTable GetAllClientsAsDataTable(string sql)
        {
            DataTable cl = new DataTable();
            using (SqlCommand cmd = new SqlCommand(sql, DataBaseZ.conn))
            {
                cmd.CommandTimeout = 2 * 60 * 1000;
                SqlDataReader dr = cmd.ExecuteReader();
                
                cl.Load(dr);
                dr.Close();
            }
            return cl;
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2012, 01:27
Ответы с готовыми решениями:

Заполнение базы данных access через интернет
Посоветуйте пожалуйста новичку. Т.к. у нас на предпиятии ассушники совсем тупые, пришлось начать освоение access. Сделал базу данных,...

Как создать коммутируемое интернет соединение в Windows при доступе в интернет через роутер?
Всем привет! Значится т-а-а-а-ак... Такая ситуация: инет получаю от ADSL-модема, настроенного в режиме "роутер". На компе Windows...

Соединение с БД через интернет
Как в visaul studio создать подключение с БД которая располагается на AGAVA?

7
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
28.02.2012, 08:50
1. убрать select * from tb_Fuel и написать все имена полей.
2. Загружать данные по мере надобности. Ведь пользователь не видит сразу 1000 записей, а только 10-20. Вот и загрузить записей 50 или 100. Потом догружать по мере надобности.
В книге Адо 2.0 Сеппа данный подход рассматривается.
3. Добавить индексы

Это так на вскидку
1
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
28.02.2012, 12:35
Еще очень важно какие данные находятся в таблице. Если полей много, да еще есть поле типа blob, то запрос будет выполняться очень долго.
Уверен, что максимальный прирост даст именно постраничный вывод данных. Такой подход исключает зависимость от объемов данных в таблице.
Чтобы настраивать индексы нужно анализировать запросы, а с нуля заниматься этим практически не реально.
1
 Аватар для yurembo
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
28.02.2012, 16:26  [ТС]
Вот оно!
Именно постраничный вывод данных" или же "Загружать данные по мере надобности" то что мне нужно! Спасибо за совет, буду дальше разбираться с этим, тк еще не знаком
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
02.03.2012, 23:29
еще полезным будет кешировать данные в оперативную память...
1
Комбайнёр
 Аватар для MAcK
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
15.03.2012, 21:14
Как разберёшься, пиши
0
 Аватар для yurembo
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
15.03.2012, 22:41  [ТС]
Цитата Сообщение от MAcK Посмотреть сообщение
Как разберёшься, пиши
как бы разобрался, использую постраничный просмотр результата запроса, пока что неплохо получается.
Базовую инфу брал отсюда http://msdn.microsoft.com/ru-r... s.90).aspx , кому-то может пригодится.

Цитата Сообщение от Learx Посмотреть сообщение
еще полезным будет кешировать данные в оперативную память...
ммм...как-то никогда такого не делал...подскажите может где об этом почитать или какой-то примерчик маленький...
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
17.03.2012, 18:51
это активно используется в ASP.NET.
а суть в том, чтоб каждый раз не обращаться к БД с запросом, а хранить таблицы в оперативной памяти, во всяком случае самые активно использующиеся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2012, 18:51
Помогаю со студенческими работами здесь

соединение 1С через интернет
Доброго времени суток. Вот у меня такая ситуация. Есть предприятие у него есть удаленное подразделение. Вопрос заключается в том можно ли...

Соединение интернет через Wi-Fi на 1,5-2 км
Нужно соеденить два компьютера через WiFi соединение для выхода в интернет. Расстояние между компьютерами около 1,5-2 км. Подскажите...

Соединение с БД через Интернет в Delphi
Есть компьютер с реальным внешним IP (интернет-сервер). Он же является InterBase 6.5-сервером c находящейся на нем БД. ...

Соединение двух ПК через интернет
Клиент хочет работать с базой 1с. (8.3 что не особо важно) Имея доступ с офиса к базе в магазине (Который предположительно находится в...

Постоянно обрывается интернет соединение через wi-fi
Здравствуйте, у меня возникла вот какая проблема. Последнее время постоянно обрывается связь с интернетом. Вот например он работает минуты...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru