|
|
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
Помагите разобраться, покритекуйте, поправьте... Пишу своё первое приложение VB.Net + sql2005через ado.Net. Очень много накопилось вопросов на которых трудно найти где либо ответы. Вот к примеру. Разработал простеньй класс для работы с данными(код ниже). Принцип такой. Основная часьт таблиц в бд представленны в виде справочных и организована так: Чтобы Убыстрить работу приложения и поиска записей Создаю DataTable создаю в ней только необходимые атрибуты и заполняю её датаридером, те. для таблицы клиентов это Будет Id-PK Surname-фамилия Name1,Name2 - имя, отчество Есс-но таблица содержит гораздо больше атрибуто тип Датарожд. Паспортные данные и тд. Но для индефикации клиента в небольшой БД я думаю достаточно. Далее на основание этой таблички создаем справочник, где организовываем систему фильтрации и поиска. Ну и вешаем на какое либо событие справочника открытие самой формы где редактируются все атрибуты таблицы, где есть дата адаптер. Примерно вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. Т.е принцип класса такой: Реально создается одна DataTable c описанием Shared - Dtable, но справочнику возвращается через свойство DT - её экземпляр. Это для того чтобы не транжирить понапрасно память, т.к. справочников по клиентам в данный момент может быть открыто достаточно много и накаждого создавать свой DataTable не очень считаю желательно.Хотя может я не прав. Меня интересует. Можно ли(желательно\нежелательно ) таким образом держать все таблицы бд(около 20)? Куда кэшируются записи таблиц, т.к. я не думаю чтоб они всё это время висели в памяти. Как обоснован такой подход хранения записей... ресурсоемкость и т.д. слабые места... Есть ли прощеты в моем коде... Помагите, поправьте, посоветуйте -без вашей помощи никак Для наглядности прикладываю картинку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 10:04 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
1. Тут нет вообще кода ADO.NET. ДатаРидер - это фактически не ADO.NET, а просто вычитывание данных пожартным курсором. АДО.NET начинается там, где идет работа с ДатаСетами, с ДатаВью, ДатаРоуВью, сортировки, фильтрации, всякий гимор с сеткми. Это слишком простое приложение, чтоб тут можно было бы допустить просчеты. 2. Все что считано в хоть ДатаРидером, хоть ДатаАдаптером ВСЕГДА висит в памяти. Именно поэтому так легко грохнуть ЛЮБОЕ АДО.НЕТ приложение - дав ему данные больше размера физической памяти. Впрочем бороться с этим МОЖНО с помошью пейджинга. 3. Сами по себе АДО.НЕТ ничто без реальных контролов, работающих на нем - БиндингСорсе, БиндингНавигатор, ДатаГридВью и тд. - все проблемы применения АДО.НЕТ - именно в ЭТИХ контролах, а не в ДатаСете, как таковом. В этой проге ничего этого нет и просто нечего обсуждать в разделе АДО.НЕТ. 4.Для первого раза - отличная прога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:27 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
1. Тут нет вообще кода ADO.NET. ДатаРидер - это фактически не ADO.NET, а просто вычитывание данных пожартным курсором. АДО.NET начинается там, где идет работа с ДатаСетами, с ДатаВью, ДатаРоуВью, сортировки, фильтрации, всякий гимор с сеткми. Это слишком простое приложение, чтоб тут можно было бы допустить просчеты. 2. Все что считано в хоть ДатаРидером, хоть ДатаАдаптером ВСЕГДА висит в памяти. Именно поэтому так легко грохнуть ЛЮБОЕ АДО.НЕТ приложение - дав ему данные больше размера физической памяти. Впрочем бороться с этим МОЖНО с помошью пейджинга. 3. Сами по себе АДО.НЕТ ничто без реальных контролов, работающих на нем - БиндингСорсе, БиндингНавигатор, ДатаГридВью и тд. - все проблемы применения АДО.НЕТ - именно в ЭТИХ контролах, а не в ДатаСете, как таковом. В этой проге ничего этого нет и просто нечего обсуждать в разделе АДО.НЕТ. по-моему полный бред _______________________________________________________ Never ask users what they want, or they'll tell you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:56 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
Лиман Артём по-моему полный бред +1 Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 13:34 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
И всё таки по существу. Держать скажем 20 объектов DateTable в каждой записей от (10до ну 20000) При условии что Столбцов не очень много, или даже название+индификатор Как это отразится на памяти, быстродействии и тд.д?? И вооще схема моего алгоритма имеет право на существование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:25 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
20000 х 20 = 400 кб ну умножьте еще на два для контроля (всякие ТаблеМапинг и прочая ерунда)... о чем речь? я на мощные тачки гружу тысяч по пять записей килобайт по 100 каждая смело и без пейджинга - только грузятся минут пять вы что эту память кому-то налево продавать думаете? - она для того и вставлена в камп, чтоб в ней хранить эти ДатаСеты А чтоб грузилось быстро и экономно - нужен пейджинг - ну не таких же обьемах как у вас.... Ну а насчет ИЗЪЯНОВ - я уже ответил - тут НЕТ алгоритма, к котором МОГУТ БЫТЬ изьяны - тут имеет место просто вычитывание обьектом CMD нескольких записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 16:20 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
ЗЫ. Я так понял ЛиманАртем и SA - достаточно неплохо разбираются в ADO.NET - не будете ли вы так любезны ответить на актуальную для меня проблему - http://www.sql.ru/forum/actualthread.aspx?tid=305456 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 16:24 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
sysadm2000ЗЫ. Я так понял ЛиманАртем и SA - достаточно неплохо разбираются в ADO.NET имхо, не надо быть семи пядей во лбу, что бы понять, что то, что ты писал - полная охинея с начала и до конца (я про тот пост который цитировал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 16:52 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Хотелось бы взглянуть насколько уверенно работаешь с данными в своих прогах....Можешь сюда какую-нидь свою форму по работе с данными прицепить? Вот мне например не проблема, ща вот домучаю очередную форму (в которой сейчас не идет инициализация добавляемой строки) - и готов прямо в этот топик выложить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 17:17 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
Да ладно вам прирекаться, все мы тут спецы:) Правда кто в чём. У меня еще вопросик назрел. хочу в конструкцию Код: plaintext 1. 2. 3. 4. Никто не связывался. Я так понимаю нужно RecordsCount Для начала с сервера считывать ?? или може ещё варианты есть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 17:25 |
|
||
|
Навагация записей, справочные таблицы, память и т.д.
|
|||
|---|---|---|---|
|
#18+
sysadm2000Критикуешь ты уверенно... констатация фатка не есть критика ;) ЗЫ: было бы время, разложил бы тебе по полочкам в чём ты не прав, но его, времени, нет. ЗЫЫ: бросаться кусками кода, того как я работаю с данными я не буду. Во-первых мне это совсем ни к чему; во-вторых, для того, что бы понять как я с ними работаю тебе еще надо многому поучиться Ado.Net ;) ЗЫЫЫ: извините за скромность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=33800315&tid=1353278]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 431ms |

| 0 / 0 |
