Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > IT-индустрия > Софт > Программирование > .NET & ASP.NET
Сообщения за день Поиск
Знаете ли Вы, что ...
...до того как открыть новую тему, стоит использовать поиск: такая тема уже может существовать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

.NET & ASP.NET Вопросы программирования .NET, ASP.NET, Web Services и других WEB-технологий .NET.


Ответить

 
Опции темы Опции просмотра
Старый 25.03.2008 22:55   #11  
Real ID Group
Аватар для Anton Papin
Оффлайн
ЧП RTT
armchair sitter
AKA:Light
Сообщений: 145
+ 136  25/15
– 8  5/2

UzbekistanОтправить сообщение для Anton Papin с помощью ICQОтправить сообщение для Anton Papin с помощью Skype™Мой мирFacebook
Цитата:
Сообщение от Ivan Korneychuk Посмотреть сообщение
2 Anton Papin
Я просто дал совет как лучше реализовать это...
такой подход может привести к одной команде Select * From <DB> ))
А уже в коде потом разбирать и выбирать нужные строки.
Просто подсчитай как долго будет грузиться программа обрабатывая таблицу 1000x1000000...
Сам обжегся на этом и не кому не советую...
А чем
Код:
foreach (DataRow row in ds.Tables[0].Select("ID = " + i))
отличается от вашего варианта? Насколько я понимаю этот метод генерирует ровно ту же самую строку обращения)
Да и табличка у меня не шибко большая. Хотя впрочем у меня была задача именно вытащить в переменную значения конкретных ячеек, с чем этот код справился прекрасно.
__________________
Шел по серверной одмин. Вдруг видит - стоит горящий шредер. Пропустил он себя через него и сгорел.
Ответить 
Старый 25.03.2008 23:11   #12  
Open ID Group uParty Member
Аватар для Timur Naimov
Оффлайн
Сообщений: 412
+ 62  206/121
– 0  0/0

UzbekistanОтправить сообщение для Timur Naimov с помощью ICQОтправить сообщение для Timur Naimov с помощью YahooОтправить сообщение для Timur Naimov с помощью Skype™
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Примечание: база данных MS Access.
А при чем здесь Transact SQL?
Ответить 
Старый 26.03.2008 22:56   #13  
Real ID Group
Аватар для Anton Papin
Оффлайн
ЧП RTT
armchair sitter
AKA:Light
Сообщений: 145
+ 136  25/15
– 8  5/2

UzbekistanОтправить сообщение для Anton Papin с помощью ICQОтправить сообщение для Anton Papin с помощью Skype™Мой мирFacebook
Цитата:
Сообщение от Timur Naimov Посмотреть сообщение
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Примечание: база данных MS Access.
А при чем здесь Transact SQL?
Язык написания обращений к БД по сути тот же самый. По крайней мере для простых запросов. Да и аксесс - только одно из средств избавиться от установки SQL-сервера и дать программе мобильность.
__________________
Шел по серверной одмин. Вдруг видит - стоит горящий шредер. Пропустил он себя через него и сгорел.
Ответить 
Старый 27.03.2008 14:38   #14  
Real ID Group
Аватар для Ivan Korneychuk
Оффлайн
UZBAT
Генеральный директор
AKA:Ivanko
Сообщений: 121
+ 17  13/12
– 0  2/1

UzbekistanОтправить сообщение для Ivan Korneychuk с помощью ICQОтправить сообщение для Ivan Korneychuk с помощью Skype™LiveJournalАккаунт на TwitterМой мирFacebook
Cool

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Хотя впрочем у меня была задача именно вытащить в переменную значения конкретных ячеек, с чем этот код справился прекрасно.
К коду претензий не имею. Работает хорошо.
Просто сам стараюсь максимально облегчить код, перекидывая нагрузку на SQL - server...
Ответить 
Реклама и уведомления
Старый 27.03.2008 14:39   #15  
Real ID Group uParty Member
Аватар для Erkin Kuchkarov
Оффлайн
Временно безработный
Сообщений: 19,979
+ 1,053  10,220/4,871
– 6  573/377

UzbekistanОтправить сообщение для Erkin Kuchkarov с помощью Yahoo
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Да и аксесс - только одно из средств избавиться от установки SQL-сервера и дать программе мобильность.
Немного странные понятия о мобильности.
Хотя собственно название темы тоже немного странное.
Но и слышать от студента ТУИТа, зная о качестве обучения в этом ВУЗе, слова типа "T-SQL" и "C#" уже достойно уважения.

Последний раз редактировалось Erkin Kuchkarov; 27.03.2008 в 15:20.
Ответить 
Старый 28.03.2008 00:15   #16  
Real ID Group
Аватар для Anton Papin
Оффлайн
ЧП RTT
armchair sitter
AKA:Light
Сообщений: 145
+ 136  25/15
– 8  5/2

UzbekistanОтправить сообщение для Anton Papin с помощью ICQОтправить сообщение для Anton Papin с помощью Skype™Мой мирFacebook
Цитата:
Сообщение от Ivan Korneychuk Посмотреть сообщение
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Хотя впрочем у меня была задача именно вытащить в переменную значения конкретных ячеек, с чем этот код справился прекрасно.
К коду претензий не имею. Работает хорошо.
Просто сам стараюсь максимально облегчить код, перекидывая нагрузку на SQL - server...
В данной ситуации и сервер и приложение работают на одном несчастном и отчаянно тормозящем Celeron 1,7 ghz с 256 мб ОЗУ и старым заезженным винчестером, производства гнусмас-а. Устанавливая студию 2,5 часа мы с админом решили сервер не вешать)

Цитата:
Сообщение от Erkin Kuchkarov Посмотреть сообщение
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Да и аксесс - только одно из средств избавиться от установки SQL-сервера и дать программе мобильность.
Немного странные понятия о мобильности.
Хотя собственно название темы тоже немного странное.
Но и слышать от студента ТУИТа, зная о качестве обучения в этом ВУЗе, слова типа "T-SQL" и "C#" уже достойно уважения.
Ну-ну, поменьше пафоса, Эркин. Зачем такое мнение о целом университете? Есть у нас и хорошие преподаватели. Есть, конечно, и формалисты, вашего кстати поколения. Но и среди студентов немало людей, ещё в школе диффузорно слившихся с партой, получивших такие же неубиваемые и прямые как стрела знания, которых задачи даже несложного программирования ставят в тупик.

И кстати о студентах. Везде есть свои энтузиасты, про T-SQL и C# в рамках ближайших к себе курсов я слыхом не слыхивал. Возможно, что-то будет позже, что-то в магистратуре.Но судить человека по месту его учёбы/работы тоже как мне кажется абсолютно неприемлемо. Как и по возрасту в том же числе.

Впрочем, это оффтоп...

О названии темы - действительно ведь по сути произошло слияние этих языков. Просто до этого я сталкивался с БД только для web app - там запрос есть в коде в чистом виде, в абсолютно чистом. А так как ещё не знал каким образом это делается в win app - назвал тему так, чтобы это отразило всю суть сабжа. У вас есть свои варианты?

По поводу мобильности - программа, использующая 1 файл куда мобильнее, чем программа использующая целый сервер, и её можно запустить на любом компьютере с установленным .NET Framework, вне зависимости от того, подключён ли он к серверу или нет. Вам не кажется?

С уважением.
__________________
Шел по серверной одмин. Вдруг видит - стоит горящий шредер. Пропустил он себя через него и сгорел.
Ответить 
Старый 28.03.2008 12:29   #17  
Real ID Group uParty Member
Аватар для Erkin Kuchkarov
Оффлайн
Временно безработный
Сообщений: 19,979
+ 1,053  10,220/4,871
– 6  573/377

UzbekistanОтправить сообщение для Erkin Kuchkarov с помощью Yahoo
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Ну-ну, поменьше пафоса, Эркин.
Куда уж меньше. Больше скептики.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Зачем такое мнение о целом университете? Есть у нас и хорошие преподаватели.
Есть. Пока есть.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Но судить человека по месту его учёбы/работы тоже как мне кажется абсолютно неприемлемо. Как и по возрасту в том же числе.
Никто не судит. Я только похвалил.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
По поводу мобильности - программа, использующая 1 файл куда мобильнее, чем программа использующая целый сервер, и её можно запустить на любом компьютере с установленным .NET Framework, вне зависимости от того, подключён ли он к серверу или нет. Вам не кажется
SQL сервер любой редакции, позиционируется производителем как система управления базами данных и имеет отличительные от Access свойства. Одно из них - хранимые процедуры, которые, кстати, можно реализовать на C#. Или реализация OLAP. Или синхронизация между SQL Serveraми.
Я не программист, как и мой коллега Тимур Наимов, но мы точно знаем что мобильность на SQL Server реализовать можно (SQL Server Express Edition\Mobile Edition) как и портируемость\переносимость собственно баз данных. При чем без особых затрат. Правда .Net Framework просто необходим по системным требованиям. Кстати эти две версии продукта абсолютно бесплатны.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
У вас есть свои варианты?
Применительно к Вашей задаче - нет. Насколько я помню из школьного курса по SQL у Вас, в Вашем коде будет несоразмерный расход памяти и как следствие низкая производительность приложения. Это так, к слову о коде. Вообще почерк очень сильно напоминает "произведения" индийских или китайских программистов.

Последний раз редактировалось Erkin Kuchkarov; 28.03.2008 в 12:35.
Ответить 
"+" от:
Старый 28.03.2008 15:17   #18  
Real ID Group
Аватар для Alexandr Pavlenko
Оффлайн
Сообщений: 261
+ 77  95/57
– 18  14/10

UzbekistanОтправить сообщение для Alexandr Pavlenko с помощью ICQОтправить сообщение для Alexandr Pavlenko с помощью Skype™
Цитата:
Сообщение от Erkin Kuchkarov Посмотреть сообщение
Вообще почерк очень сильно напоминает "произведения" индийских или китайских программистов.
Хм...я так понял, по вашим словам, что у индийских программистов немобильный код.
Тогда почему же индийские программисты считаются одними из лучших в мире???..
Ответить 
Старый 28.03.2008 15:21   #19  
Real ID Group
Аватар для Andrew Sklyarevsky
Оффлайн
Сообщений: 135
+ 22  63/50
– 1  0/0

UzbekistanОтправить сообщение для Andrew Sklyarevsky с помощью ICQLiveJournal
Цитата:
Сообщение от Erkin Kuchkarov Посмотреть сообщение
Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Ну-ну, поменьше пафоса, Эркин.
Куда уж меньше. Больше скептики.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Зачем такое мнение о целом университете? Есть у нас и хорошие преподаватели.
Есть. Пока есть.


Никто не судит. Я только похвалил.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
По поводу мобильности - программа, использующая 1 файл куда мобильнее, чем программа использующая целый сервер, и её можно запустить на любом компьютере с установленным .NET Framework, вне зависимости от того, подключён ли он к серверу или нет. Вам не кажется
SQL сервер любой редакции, позиционируется производителем как система управления базами данных и имеет отличительные от Access свойства. Одно из них - хранимые процедуры, которые, кстати, можно реализовать на C#. Или реализация OLAP. Или синхронизация между SQL Serveraми.
Я не программист, как и мой коллега Тимур Наимов, но мы точно знаем что мобильность на SQL Server реализовать можно (SQL Server Express Edition\Mobile Edition) как и портируемость\переносимость собственно баз данных. При чем без особых затрат. Правда .Net Framework просто необходим по системным требованиям. Кстати эти две версии продукта абсолютно бесплатны.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
У вас есть свои варианты?
Применительно к Вашей задаче - нет. Насколько я помню из школьного курса по SQL у Вас, в Вашем коде будет несоразмерный расход памяти и как следствие низкая производительность приложения. Это так, к слову о коде. Вообще почерк очень сильно напоминает "произведения" индийских или китайских программистов.
Понятие о мобильности есть как общепринятое (обычно имеются ввиду компактные устройства), так и относительное, проектное (например, если на предприятии везде установлен Access, то понятно что проще иметь дело с ним).

Хранимые процедуры при использовании ORM нужны крайне редко, а OLAP так вообще далеко-далеко не во всех проектах нужен. Современные ORM (для .NET это, например, LINQ to SQL, NHibernate, LLBLGen Pro и другие, кстати, Антон, посмотрите в сторону ORM чтобы не изобретать велосипедов, некоторые из них работают с Access, насколько я знаю) решают множество проблем в две строчки кода. Кстати, разработка ORM - очень увлекательная задача , можно многому научиться.

Об индусах и китайцах - так это вообще, простите меня, очень странное мнение. Практически везде (в том числе и в Индии) есть разработчики всех уровней, в том числе и профессионалы высокого класса. Например, если посмотреть, как индусы пишут статьи на CodeProject.Com, то я бы сказал что нам надо учиться у них, а не стереотипно считать, что код они пишут не очень хорошо.

Цитата:
Сообщение от Anton Papin Посмотреть сообщение
Насколько я понимаю этот метод генерирует ровно ту же самую строку обращения)
Да и табличка у меня не шибко большая. Хотя впрочем у меня была задача именно вытащить в переменную значения конкретных ячеек, с чем этот код справился прекрасно.
Тут вопрос в производительности. Не знаю точно, как работает dataset, однако судя по всему, загружаются сначала все строки в ОЗУ, а потом уже происходит выборка в памяти. Если у Вас маленькая табличка и Вы уверены, что она не расползётся потом, то возможно, такой подход может быть оправданным. У меня бывали случаи, когда было очень важно иметь несколько сотен записей в ОЗУ и это работало быстрее, чем постоянные обращения к БД. Но бывало так же и так, что несколько сотен записей хранились в ОЗУ слишком долго без причины . Это уже в процессе тестирования выясняется.
__________________
Веб-разработчик
Ответить 
Старый 28.03.2008 15:53   #20  
Open ID Group uParty Member
Аватар для Timur Naimov
Оффлайн
Сообщений: 412
+ 62  206/121
– 0  0/0

UzbekistanОтправить сообщение для Timur Naimov с помощью ICQОтправить сообщение для Timur Naimov с помощью YahooОтправить сообщение для Timur Naimov с помощью Skype™
Цитата:
Сообщение от Andrew Sklyarevsky Посмотреть сообщение
если на предприятии везде установлен Access, то понятно что проще иметь дело с ним
Особую легкость Вы испытаете когда какой-нить Вася Пупкин случайно удалит файлик аксеса ))) Лично мне легче или попросить заказчика "пересесть" на SQL Server или отказаться. Почему так объяснять думаю не надо - аксес и SQL Server не сравнимы...

Цитата:
Сообщение от Andrew Sklyarevsky Посмотреть сообщение
Хранимые процедуры при использовании ORM нужны крайне редко, а OLAP так вообще далеко-далеко не во всех проектах нужен.
Вопрос спорный. ORM безусловно очень сильно помогает. Но от хранимых процедур все равно никуда не деться. Не все к сожалению можно при помощи ORM реализовать. Тот же самый Crystal Report работает на ура с дотнетовским DataSet, но вот подсунуть ему класс, сгенерированный ORM по-моему никак нельзя. Да и любая другая генерация отчетов... Если только не использовать какой-нибудь спецефичный генератор. И задач таких не мало. Т.е. ORM хорошо, но разработать весь проект используя только его средства не получится.
Ну а про OLAP вообще говорить не приходится. Не могу представить себе ни один проект для автоматизации чего-нибудь (если только не программулька из 2-х окон), где бы его не использовали. Конечно, все что делает OLAP можно сделать самому - запросы, хранимые процедуры и т.д. Но это не есть правильно. По собственному опыту говорю. Отчет о продажах магазина за год деятельности, который состоит из 60 вычисляемых полей.... Без OLAP работать будет очень долго... Хотя наверное сужу только по проектам для автоматизации каких-либо бизнес-процессов. Хотя в последнее время таких проектов абсолютное большинство. И там везде нужна аналитика. А лучше OLAP для этого пока ничего не придумали. Business Intelligence просто "конфетка", а делать самописные аналоги - не благодарное это дело...

Цитата:
Сообщение от Alexandr Pavlenko Посмотреть сообщение
Тогда почему же индийские программисты считаются одними из лучших в мире???..
Опять же очень спорное мнение. Индийские программисты бывают разные... но в большинстве своем ..... наверное всетаки самые дешевые.... У меня есть несколько друзей программистов, которые сталкивались с ними в живую. И у всех одно и тоже мнение - "ощющение что им платят за количество кода...."

Цитата:
Сообщение от Andrew Sklyarevsky Посмотреть сообщение
Тут вопрос в производительности. Не знаю точно, как работает dataset, однако судя по всему, загружаются сначала все строки в ОЗУ, а потом уже происходит выборка в памяти. Если у Вас маленькая табличка и Вы уверены, что она не расползётся потом, то возможно, такой подход может быть оправданным.
В ADO.NET есть 2 вида объектов - "отсоединенные" и "подсоединенные". Разница в том что первым конект к базе не нужен, а вторые без него не могут. DataSet относиться к первым и ВСЕ свои данные хранит в ОЗУ. Так что если запрос возвращает большое количество строк - то прощай производительность. Тут важно найти баланс - во-первых не загружать ничего из базы без особой но то надобности. Во-вторых оптимально подобрать грань между тем когда лучше выполнять много запросов и получать данные маленькими порциями или выполнить один запрос и хранить все в ОЗУ. Ну и общая рекомендация вместо прямых запросов использовать хранимые процедуры (если нет ORM под рукой ) - они выполняются быстрее.

Ну а что касается приведенного ранее кода - совершенно не оптимальное решение. Стринг - он загадочный, а точнее "неизменяемый". И в цикле выполнять конкатенацию "плюсиком" - в приведенном примере будет создаваться 6!!!! строк на каждой итерации. Вот и посчитайте сколько памяти это все будет занимать. Гораздо лучше в самом запросе выполнить конкатенацию значений полей. Что-то вроди "select field1 + field2 + field3 as ......".

Последний раз редактировалось Timur Naimov; 28.03.2008 в 16:03.
Ответить 
Ответить




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх