|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Подскажите, от чего в большей степени зависит скорость работы с данными?? 1. Формат данных (SQL Server, Access) 2. или Организация (структура) данных По поводу 2 пункта: у меня в базе (Access) две основные таблицы - DOCLIST и DOCrows (шапки документов и строки соответственно). Растут постоянно!!!! Документы делятся на разные типы - накладные расходные, возвратные, счета, заказы, остаток, приходные от поставщика и т.п. НО все документы - в одной таблице. В DOCLIST'е ок. 65000 записей, в DOCrows'е - ~ 780000 Скорость обработки данных по сети убийственная (да и на локальной машине не очень ) СПАСЁТ ли (в смысле скорости) SQL Server? Или надо разбить таблицу DOCLIST (и DOCrows соотв.) на столько, сколько имеется типов документов? Вообще-то мне этот вариант ну оооочень не нравится. Криво как-то.. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2003, 20:34 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
--Криво как-то.. :( кому-то вариант и с одной таблицей может показаться самым правильным. MS SQL будетЮ конечно, обрабатывать это несколько быстрее, но правильная организация базы, как правило, - весьма необходимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2003, 20:45 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
"кому-то вариант и с одной таблицей может показаться самым правильным." Да. Мне. :-) Мне мой вариант кажется очень даже правильным. Просто нашелся один человек, который сказал, что это есть плохо - одна таблица, но возможно, он неправ! Так я вроде более-менее подробно описала организацию данных, так правильная она или нет?? Индексы, связи, "все дела" - вроде всё грамотно сделано. Просто таблица растет очень быстро, так и отдельные несколько таблиц будут расти, а данные в запросах объединять все-таки проще... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2003, 20:54 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
SQL server поможет. 1. Файл-сервер (Access) тащит всю базу на клиента и там его обрабатывает, наверника у тебя именно от этого тормоза, т.к. запросы у тебя явно простенькие. Как вариант понатыкай индексов явно их не хватает раз тормозит на таких объемах (детских) Но лучше переходи на SQL сервер, хотя бы для того чтоб получить экспириенс, а потом зарплату ;) 2. Почитай все таки теорию, хотябы то что грится про 4 нормальные формы, там все ответы на вопросы по организации данных . (наверника на этом сайте есть) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 00:19 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Если ты будешь работать с sql server -ом старым файл-серверным способом, т.е. тянуть на клиента все данные, а потом их разгребать - то тут любая СУБД и любая сеть помрет. При перестроеке запросов, навешивании индексов тебе даже mySql даст выигрыш ~10% ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 05:13 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
авторВ DOCLIST'е ок. 65000 записей, в DOCrows'е - ~ 780000 Это не те объемы при которых можно было бы задуматься про секционированные представления, если переходить на сиквел. авторСкорость обработки данных по сети убийственная (да и на локальной машине не очень ) Это ни о чем не говорящая фраза без указания что за обработка, что за сеть, что за железо. авторСПАСЁТ ли (в смысле скорости) SQL Server? ЕСли переписать заново алгоритм работы с данными, то прирост производительности должен быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 10:16 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Алгоритмы работы с данными нипричем, совершенно. производительность любого приложения для БД на 90% зависит от структуры данных - как разложены они по таблицам, какие есть индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 10:48 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 gardenman авторАлгоритмы работы с данными нипричем, совершенно. Ну может я не правильно выразился. Имелся в виду подход к обработке данных. Написание хп, абстрагирование клиента от структуры данных и т.п. Так что структура данных - это еще не все. Это не Access. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 11:34 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Помница в те времена далекие) 1996,97 когда еще машина на 486 - считалось круто, у меня 15 юзеров сидело на новеловском сервере. В самой большой таблице 1 500 000 записей, сеть - 10МБ, приложение написано на CLARION, отклик чуть больше 1 секунды... Вот так вот.) Причем хранили образцы подписей клиентов в графическом виде) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 12:23 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Таблица DOCLLIST Поля: IDDOC, счетчик (код записи) DOCTYPE, числовой (тип документа) DOCNUM, текстовый (номер документа) DOCDATE, дата/время (дата по документу) FACTDATE, дата/время (дата по факту) ORG1, числовой (организация, отпускающая товар) ORG2, числовой (организация-получатель товара) ORG_PAYER1, числовой (организация-плательщик со стороны продавца) ORG_PAYER2, числовой (организация-плательщик со стороны покупателя) DISCOUNT, числовой (скидка) PKORDERNUM, текстовый (номер приходно-кассового ордера) OSNOVANIE, текстовый (основание для выписки документа) PACKAGE, числовой (всего мест по накладной) SOURCEIDDOC, числовой (код записи парного документа) DELIVERDATE, дата/время (дата доставки заказа - для заказов) DELIVERTIME1, дата/время (время1 доставки заказа) DELIVERTIME2, дата/время (время2 доставки заказа) VALUTE, числовой (код валюты - рубль default) ADDRECDATE, дата/время (дата добавления записи) FORRETAIL, Логический FORLOOK, Логический Индексы: IDDOC (PrimaryKey) DOCTYPE ORG1 ORG2 DOCNUM PKORDERNUM SOURCEIDDOC VALUTE Таблица DOCrows IDDOC, IDROW (PrimaryKey), PRODUCT, QTY, RATE, TAXROW (проиндексированы IDDOC, IDROW, PRODUCT) А вот запросы у меня не такие уж простенькие :((( И железо и сеть вполне приемлемые, думаю, не о них здесь речь (есть и 3 и 4 пни). Вопрос: Из VB6 строю инструкцию SQL (пока к БД Access, а в принципе вопрос про SQL Server) - это файл-серверный способ? Эту же инстукцию запускаю типа cn.execute (имя хранимой процедуры) - это клиент-серверный способ? Спасибо за ответы на наивные вопросы... С новым годом всех.. =)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 12:26 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 gardenman автортаблице 1 500 000 записей, сеть - 10МБ, приложение написано на CLARION, отклик чуть больше 1 секунды... Вот так вот.) ЧТо это за характеристика такая - просто отклик? Без указания конкретики грош цена таким цифрам. Если это выборка 1 записи - то это долго. И мы не пальцем деланные и под новелом с Clipperом работали на ARCNet (если кто не помнит 2,5 Мb). И то же все летало. Но речь то ведь не об этом. 2 гостья авторИз VB6 строю инструкцию SQL (пока к БД Access, а в принципе вопрос про SQL Server) - это файл-серверный способ? Эту же инстукцию запускаю типа cn.execute (имя хранимой процедуры) - это клиент-серверный способ? В последнем случаи все будет зависеть от того, что это за хп. Если в ней вы написали SELECT * FROM Table1, то это не клиент-серверный способ. Основной смысл двухзвенки (про N-звенку не будем) - перенос обработки данных на серверную сторону. Если вы храните тока документы и постоянно поним считаете (не имея предрасчитанных итогов, например, типа регистра складских остатков + оборотов за месяц) то быстродействие вашей системы будет обратнопропорционально объему обрабатываемых данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 13:31 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
отклик - это одна проводка, плюс полностью перерисовка экрана... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 15:25 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Не нравятся мне Ваши индексы. Структура тоже. Но пока поговорим про индексы Я бы предложил такие Таблица DOCLLIST Составной первичный ключ DOCTYPE, DOCDATE, DOCNUM, IDOC Таблица DOCrows Составной первичный ключ IDDOC, IDROW Или для DOCrows у Вас именно такой составной индекси и есть? Насчет вторичных индексов трудно что-то сказать не зная конкретных надобностей. ============= Пока Вы работаете с файл-сервером, которым является Access, любые Ваши запросы будут "файл-серверными" . Это сильно упрощенный ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2003, 19:44 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Что-то все говорят о СУБД, структуре базы и никто не вспомнил о железе и программном окружении. Эти вещи надо рассматривать в первую очередь. Что за железо применяется? Является ли СУБД (MSAccess или что там еще) единственным запущенным в ОС приложением? Еще быстродействие зависит от настройки самой ОС (файл подкачки, приоритет процессов). Иначе если например кроме целевого приложения на сервере запущена куча других, которые тоже требуют ресурсы, хоть заоптимизируйся - ничего хорошего не выйдет. Итак, скорость работы СУБД зависит от (в зависимости от величины показателей приоритеты могут менятся): 1. Аппаратное обеспечение (процессор, память, диски, сеть) 2. Программное окружение (ОС, другие приложения в конкурентной среде) 3. Тип выбранной СУБД (и ее настройки) и структура Базы данных 4. Кол-во одновременно работающих пользователей и тип системы (OLTP, DSS, или смешанная) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2003, 09:05 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Железо вторично, идеология первична. Неправильной идеологией можно сделать тормоза на любом железе. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2003, 10:09 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
SergSuper Железо вторично, идеология первична КнигаВначале было слово ... И сказал Господь, что это хорошо Ну это по его мнению. Некоторые считают что получилось как всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2003, 10:30 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
авторЯ бы предложил такие Таблица DOCLLIST Составной первичный ключ DOCTYPE, DOCDATE, DOCNUM, IDOC Ну вообще-то поле DOCNUM не всегода заполняется. Но в общем понятно.. авторТаблица DOCrows Составной первичный ключ IDDOC, IDROW Или для DOCrows у Вас именно такой составной индекси и есть? Да, именно так и есть. авторНе нравятся мне Ваши индексы. Структура тоже. Но пока поговорим про индексы Ой, про структуру тож чего-нибудь напишите, pls, если не трудно! И еще, мне таки не понятно, разбивать таблицу или нет?? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 02:16 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Моя Киса уже умаялась смотреть концерты, а я спать пока не хочу ============================== IDDOC, счетчик (код записи) DOCTYPE, числовой (тип документа) DOCNUM, текстовый (номер документа) DOCDATE, дата/время (дата по документу) FACTDATE, дата/время (дата по факту) ORG1, числовой (организация, отпускающая товар) ORG2, числовой (организация-получатель товара) ORG_PAYER1, числовой (организация-плательщик со стороны продавца) ORG_PAYER2, числовой (организация-плательщик со стороны покупателя) DISCOUNT, числовой (скидка) PKORDERNUM, текстовый (номер приходно-кассового ордера) OSNOVANIE, текстовый (основание для выписки документа) PACKAGE, числовой (всего мест по накладной) SOURCEIDDOC, числовой (код записи парного документа) DELIVERDATE, дата/время (дата доставки заказа - для заказов) DELIVERTIME1, дата/время (время1 доставки заказа) DELIVERTIME2, дата/время (время2 доставки заказа) VALUTE, числовой (код валюты - рубль default) ADDRECDATE, дата/время (дата добавления записи) FORRETAIL, Логический FORLOOK, Логический ================= Сначала про индексы. Обычно нужна выборка по типу документа, значит первое поле - DOCTYPE. Потом, обычно, интересует период (год, квартал, месяц) - DOCDATE. Но индекс должен быть уникален. Значит для своих документов нужен DOCNUM. Правда, у входящих документов могут быть совпадающие номера. И их даже может и не быть. И посему, в конце - IDDOC. Я так понимаю, что для полей ORG* есть справочники. И это правильно. Я являюсь противником хранения процента скидки. Скидка делается при выписке и лучше просто заносить в документ высчитанную цену. Причем применяемый Вами вариант скидок слишком негибок. Ведь могут быть скидки в абсолютных суммах и скидки на часть товара по одной накладной. PACKAGE. В данном случае это лишнее. Число мест (сорри, сбегал выпил 50 грамм) имеет смысл в контексте одной накладной. Типа указания грузчикам, что бы меньше путались. Это всегда можно взять из накладной. В нормализованой базе не должно быть полей, значения которых можно получить на основании других данных из этой базы. И у Вас не тот случай, когда нужна денормализация. OSNOVANIE - если это номер договора, тогда претензий нет. Но если это in ("Покупка", "Распоряжение директора", ets), то это должно быть вынесено в справочник. SOURCEIDDOC - не понял, что это, но скорее всего должна быть таблица сопутствующих документов, со связью по IDOC VALUTE, PKORDERNUM - это должно быть в таблице оплат. Ведь по одному заказу могут оплачивать частями и разными валютами. И не только ПКО может быть. А если по безналу? DELIVERDATE,DELIVERTIME1,DELIVERTIME2 - это лишнее. Должна быть таблица заказов, со связью по IDOC =========== Даже если Вы будете (сорри, еще 50 грамм) работать на Access, укорочение длины записей даст некотрый выигрышь в скорости. Но про наилучшее ускорение нужно спросить у профи из Access. Я попробую их позвать. Ноя уверен, что снятие IDOC с первого места из Primary Key увеличит скорость аггрегитирующих запросов. (по крайней мере в SQL-серверах это так, но и Access тоже делает некоторую оптимизацию запросов) ADDRECDATE - а это очень нужно? Все равно, полный аудит работы юзеров на Access сделать можно, но муторно. FACTDATE - не понял. Это дата полного выполнения обязательств по договору? ========= Прошу прошенитя за орфографию. Я уже и в клавиатуру-то непопадаю. Баинки пора. Но еще 50 грамм выпью! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 04:12 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
С новы Годом, Братья и Сестры!!! ------------------------------------- Какое страстное обсуждение! А может быть хоть кто-нибудь пояснит, что значит "медленно" - ЧТО ИМЕННО МЕДЛЕННО??? - таблицы на просмотр открываются медленно или какой-то запрос отрабатывает медленно, или процедура какая пакетной обработки - об чем, собственно, тепло дискуссии и печаль инициатора? Да и медленно - это какое время получения нервного срыва - секунды - минуты - часы- сутки - СКОЛЬКО? Уж совсем глупость спрошу - Jet какой версии пользуется для доступа, и если 4, то каков формат mdb - 97,2000,2002(XP), да, и, если можно - как насчет диаграммы - т.е. ссылочной целостности? ЗЫ tip (для 2K и далее - см MSDN )- если "медленно" открываются таблицы - откройте их в режиме конструктора, жмакните правой клавишей (мыши) в окне конструктора, из контекстного меню выберите пункт "свойства", в открывшемся окне свойств таблицы замените значение свойства "Имя подтаблицы" с [Auto] на [Нет] , после всего сохраните таблицу. ЗЫ2 Если про запросы или процедуры печаль - придется тексты в студию - а до того (запросы) неплохо сохранить в Access и отдать анализатору на ощупь - он хоть и глупый, а иногда пользу скажет... Всем удачи в новом году ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 05:40 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Не вижу никакого смысла разбивать список документов на несколько таблиц. Неужели юзерам нужно видеть в списке только один тип операции? И нельзя ли пояснить, при каких именно операциях тормозит база? А то третий день идут споры вокруг непонятно чего... Создана ли связь между документами и строками? Ключи в таблицах я бы оставил как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 11:02 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Драсте... С Наступившим! По поводу сабжа и двух таблиц под Аксом... Акс - файл-сервер, который для "обработки" тянет данные на себя, при чём тянет он не целиком всю БД, а частями - таблицами, данные из которых были запрошены. Ну так вот теперь подумаем. Что для файл-сервера легче - затянуть фактически ВСЮ БАЗУ СРАЗУ (обычно данные нужны из обеих таблиц одновременно, а значит именно так и происходит), или затянуть 2 таблички из, например, десятка таблиц (в случае, если документы разнесены по разным таблицам), т.е. 1/5 от всей БД? Далее по поводу двух таблиц... Получив все необходимые данные, Jet должен будет отобрать записи не только по действительно нужному параметру (по номеру документа, по дате и т.п.), но и еще отобрать вообще сами документы, как таковые! То есть, отделить мух от котлет! Ну грубо, вместо просмотра 1/5 от 780000 (в некой отдельной таблице) записей он просматривает все 780000. С таким подходом "двух таблиц" дорога, имхо, одна - клиент-сервер... Там и сервак железом не обижен, и качать для "обработки" внутри себя ему ничё не надо, и вообще, круто :) Ну тонкости всякие... тонкости... Например, если работать из Акс2002 с форматом Акс2000, то тормоза могут быть жутчайшие... Но конкретные вопросы по Аксу не здесь... там... и вообще, хде я? --------- Ну... Я хоть и не заявленный Cat2 профи от Аксеса (таааак... любитель), ну глупостей, кажется, не наговорил :) Удачи... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 11:12 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Позвольте и мне сказануть. Быстродействие зависит и от того, и от другого. 1. Структура данных должна быть правильной независмо от выбранной платформы. В Вашем случае правильная структура данных - это именно две таблицы. Все остальное (одна таблица, десять таблиц, сто таблиц) будет хуже - если не с точки зрения быстродействия, то как минимум с точки зрения логики. 2. При больших объемах данных SQL сервер должен спасти. Только тут главное - не прилинковываться к таблицам полностью, а гонять по сети только те данные, которые нужны. Для этого создаются, например, представления и т.д., но тут я не есть большой специалист. Если кто-то хочет ответить мне, то пишите в форум по Аксессу, я обитаю там. :^) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 11:55 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Если народ не возражает, то через некоторое время я перенесу этот топик в Проектирование БД. Его место там. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2004, 12:55 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
оо, я тоже ляпну Cat2 Даже если Вы будете (сорри, еще 50 грамм) работать на Access, укорочение длины записей даст некотрый выигрышь в скорости укорочение за счет нормализации базы, созданием таблиц-справочников? ну, да, конечно, но в запросе будет учавствовать уже совсем другое кол-во таблиц, и все это будет обрабатываться на клиенте, так что тут еще палка о двух концах - иногда в акцессе лучше оставить данные денормализованными, именно с точки зрения скорости обработки (вернее закачки на клиент и дальнейшей обработки), опять же все зависит от задачи 4 гостья а по поводу хранения - если это однотипные документы (наклыдные: приходные, расходные и т.д.), то видимо логичнее хранить в одной таблице, как у вас, зачем разбивать-то? другое дело, например, накладные и счета-фактуры... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2004, 01:27 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
О, ну вот и я до сюда дополз. Модерите меня семеро 2 Гостья В DOCLIST'е ок. 65000 записей, в DOCrows'е - ~ 780000 Цифры,близкие к критическим для аксеса. Если индексов мало (или они неправильные) - скорость выборки безобразная. Если все хорошо проиндексированно - скорость восстановления базы просто неприемлимая. На моей памяти база из двух таблиц (заголовок+данные, ~100-150тыс + ~600-800тыс записей, обе перегружены индексами) восстанавливалась по 3-5 часов. Так что с такими объемами переход от настольной базы (аксес) к чему-нибудь хотя бы более надежному - это всего лишь вопрос времени. До первого нетривиального падения. 2 ГДРГ (и заодно Нуф-Нуфу) 1. Файл-сервер (Access) тащит всю базу на клиента и там его обрабатывает Бред Причем полный бред. (Нуф-Нуфу должно быть стыдно за фразу " тянет он не целиком всю БД, а частями - таблицами ") Не тянет аксес ни всю базу, ни таблицы целиком. Если есть возможность (и надобность) - подтягивает индексы, по ним делает выборку, и потом уже тянет нужные записи. Правда, надо отметить, что индексы он подтягивает целиком. При 780000 записей один только первичный ключ будет весить несколько метров. 2 Гостья еще раз Или надо разбить таблицу DOCLIST (и DOCrows соотв.) на столько, сколько имеется типов документов? Вообще-то смотря что за данные. Исходя из фразы " Документы делятся на разные типы - накладные расходные, возвратные, счета, заказы, остаток, приходные от поставщика " - надо. Запихнуть в одну таблицу приходные документы, расходные, счета, счета, заказы, накладные, счета-фактуры, акты инвентаризации, и прочую муру - это бред. Х..ня полная. Разные сущности треба хранить в разных таблицах. Приемный акт и заказ - две совершенно не связанные между собой вещи. Отгрузка клиенту и внутренние перемещения - тоже две большие разницы. У них просто разные аттрибуты. В приемных актах нафих не нужны дата/время доставки заказа и какие-нибудь скидки. В отгрузках клиентам нафих не нужен грузоотправитель - из предположения что он один (а даже если не один - это все равно не то же самое, что грузоотправитель в приходных документах) Мухи отдельно, котлеты отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2004, 20:25 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
По поводу индексов Cat2 писалТаблица DOCLLIST Составной первичный ключ DOCTYPE, DOCDATE, DOCNUM, IDOC Совершенно не согласен. С какой стати дата документа должна входить в первичный ключ? Брррр... ед. Типа будут два документа одного типа, с одним числовым номером, с одним текстовым номером, но с разными датами? Нее... это, наверное, последствия нового года. Ключ - либо IDOC, либо связка DocType+IDOC. Если нужна уникальность по текстовому номеру - то заводится еще один (суррогатный) уникальный индекс DocNum (либо DocType+DocNum). По дате - просто неуникальный индекс. Для состава документа - либо составной первичный ключ (первичный ключ шапки + IDRow), либо IDRow + связь между шапкой и составом по полям, входящим в первичный ключ шапки. Без связи любая выборка будет тормозить. Все остальное уже лениво писать... В понедельник... все в понедельник... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2004, 20:38 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Лох Позорныйподтягивает индексы, по ним делает выборку тогда где он делает эту выборку??? на сервере што ли?? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2004, 23:56 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Для Улыбки еще раз на пальцах. Для того, чтобы сделать выборку (разумеется на клиенте) совсем необязательно копировать по сети всю базу (весь файл .mdb), и даже совсем не обязательно тянуть по сети отдельно взятые таблицы. Если можно использовать индексы - аксес их использует. Тянет индексы на клиента, там (на клиенте) их (индексы) шерстит, после чего грузит с файл-сервера на клиент только нужные страницы с данными. Аксес - это, конечно, настольная БД, но все-таки чуть-чуть поумнее экселя будет :) При правильном построении структуры базы в аксесе можно добиться хорошей производительности и в случае с сотнями тысяч записей. Но надежности в аксесе добиться гораздо сложнее. Хотя бы из этих соображений можно и нужно задуматься над переходом на какой-нибудь MS SQL. Не знаю как автору вопроса, а мне было бы жалко 780000 записей. а если не жалко - так и перенести их куда нибудь в архив, оставить только актуальные, все летать начнет ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2004, 02:03 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
т.е. получается прямая зависимость кол-ва передаваемой информации от индексов??? хмм, а как происходит тогда обновление и удаление??? мне че-то сложно увязать его с приведенной вами схемой объясните, тогда и это на пальцах, если не трудно, конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2004, 03:00 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Из двух вопросов не понял ни одного :( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2004, 03:17 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Полагаю, что под вопросами имелось в виду следующее: 1. Правда ли, что чем больше индексов, тем больше загружается сеть (потому что они все гоняются по ней)? 2. Как с той же точки зрения выглядит алгоритм обновления? И тот же вопрос про удаление. Что куда гоняется, и вообще что в каком порядке происходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2004, 11:35 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
4 Лох Позорный Владимир Саныч почему-то понял правильно... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2004, 18:58 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Cat2 Таблица DOCLLIST Составной первичный ключ DOCTYPE, DOCDATE, DOCNUM, IDOC ЛПС какой стати дата документа должна входить в первичный ключ мдя. НАдо думать, вопрос о первичном ключе (вернее - о неком уникальном индексе, ибо в аксе затруднительно впаять Null [DOCNUM] в первичный ключ), и порядке полей в нем завязан в первую очередь на, как это не паскудно выглядит в топике из разряда "Сравнение СУБД", на интерфейс прилады. Если основная форма (формы) отбирают данные по некоторому предпочтительному набору условий, то именно от того, каким образом поля входят в эти условия. (т.к. мы "ускоряем" существующую приладу, а не разрабатываем новую). Если в структуре нет архивных таблиц, то, думается фильтр на ~100000 записей построен в 1-ю очередь по дате (если автор так ленив, чтобы разбить таблички (по типам сущностей), то он мог полениться и разбить интерфейсы, и все тянется в одну форму), а уж затем по типу, номеру и прочей лабуде. Но, с другой стороны, набор отдельных индексов не то же самое, что составной индекс. Т.ч. ЛППо дате - просто неуникальный индекс не катит. Именно: индекс (основной) - составной, но по основному способу фильтрации данных в главной форме (формах). И вероятно включающий дату в качестве одного из первых полей. Если есть несколько форм и несколько способов фильтрации, то не вредно иметь несколько разных индексов (еще один минус хранения всего в одной таблице - индексы то все время будут гоняться по сети и перестраиваться/писаться на диск. И будут они большими. А для каждого типа документов мог бы быть свой индекс - в зависимости от предпочтительного способа выборки именно этих сущностей). Не вредно и в запросах посмотреть синтаксис так, чтобы индексы использовались. (если вы, к примеру пишете Код: plaintext
, то лучше переписать на что-нить типа Код: plaintext
, и т.п.. Потому что никакие индексы не спасут, если выборка строится на функции от полей (если СУБД не строит функциональных индексов). Да, и имейте в виду, если в Аксе определена _связь_ для таблиц с _целостностью_ (см "схема данных"), то автоматом определен вторичный ключ в деталях (не показывается в конструкторе таблиц, но в семействе индексов присутствует). Если нет - то надо определить индекс в таблице деталей по полям связи (каковой акес создал бы сам при определении связи). Если задублировали индекс (т.е. создали и связь и индекс - лишнее снесите - зачем строить и качать 2 структуры?). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2004, 12:29 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Большое спасибо всем, кто сюда пишет, всё внимательно читаю, но внести ясность в некоторые вопросы, обращенные ко мне, пока нет времени.. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2004, 14:42 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Владимир Саныч, ну Вы бы как знаток Accces (судя по профилю) и сами бы ответили, чтоли... 2 Smile 1. Правда ли, что чем больше индексов, тем больше загружается сеть (потому что они все гоняются по ней)? Товарищи клиент-серверщики, ну вы пАрите просто. Куда ни плюнь - везде одно и то же идиотское заблуждение. Не тянется ничего ПОЛНОСТЬЮ - ни таблицы, ни индексы!!! Почему это тянутся индексы ВСЕ? Откуда такой вывод? Перечитайте выступление Л.П. Тянутся нужные для оптимизации запроса. Л.П. вам же объяснил как происходит выборка по индексам. Зачем для этого ВСЕ индексы тянуть? В Access и Фоксе есть оптимизатор (в первый перекочевал из второго). Rushmore зовётся. Он и решает, получая SQL-инструкцию, какие индексы тянуть и с каких таблиц. Далее - по вытянутым индексам, в соответствии с запрошенным в SQL-инструкции выражением, определяются нужные записи, и вытягивабтся на клиента ТОЛЬКО ОНИ. 2. Как с той же точки зрения выглядит алгоритм обновления? И тот же вопрос про удаление. Никаких страшных заморочек и тут нет. Я не знаю как в Access на низком уровне (на 99% уверен, что абсолютно так же), а в фоксе источник выборки (та часть (я подчёркиваю - имеено _часть_) источника, которая была вытянута из сети на клиента) сидит в памяти, она же и изменяется при обновлении/удалении. Синхронизацией её с сетью занимается сам движок Фокспро, с определенным интервалом опрашивая сетевой источник и синхронизируясь с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 09:20 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
AijikВладимир Саныч, ну Вы бы как знаток Accces (судя по профилю) и сами бы ответили, чтоли... Для недогадливых: раз я не ответил, значит не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 15:02 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 Aijik >... Не тянется ничего ПОЛНОСТЬЮ - ни таблицы, ни индексы!!! ... Перечитайте выступление Л.П. Перечитываем внимательно: Лох Позорный> Если можно использовать индексы - аксес их использует. Тянет индексы на клиента, там (на клиенте) их (индексы) шерстит, после чего грузит с файл-сервера на клиент только нужные страницы с данными. Т.е. тянет индекс на клиетна именно ПОЛНОСТЬЮ и там шерстит. Вообще с трудом представляю, какой смысл в частично вытащенном индексе. А индексы бывают большие, это ИМХО и имел в виду Smile: больше индексов - больше трафик, заранее неизвестно нужен ли индекс, может дешевле было бы проскинировать таблицу целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 01:34 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 c127 Ваша фраза: c127Т.е. тянет индек с на клиетна именно ПОЛНОСТЬЮ и там шерстит моя фраза: AijikНе тянется ничего ПОЛНОСТЬЮ - ни таблицы, ни индек сы !!! фраза Владимир Саныча: Владимир Санычпотому что они все гоняются по ней Вы разве не усмотрели разницу между озвученными понятиями "индекс" и "(все) индексы"? Что такое "тег" составного индекса кто помнит? В Access, насколько мне известно, понятия "тег" не существует. Просто "индекс" и "индексы" таблицы. Ну пусть так - сути это не меняет. Кто все равно не понял - пример: Допустим, есть таблица Cities Допустим есть поля: Name, Country, Population, Location, TimeZone, Budget Для простоты примера допустим, что по ним всем есть индексы Выборка на клиенте: SELECT * FROM Cities WHERE Cities.Country="France" Из сети тянется индекс Country. Не все 5 индексов, а ТОЛЬКО индекс Country (!!!). Тянется полностью (никто о частичном вытягивании индекса не говорил, упаси боже). В индексе находятся адреса записей с Country="France". Тянутся на клиента только они. Всё.. трафик минимально возможный для Файл-сервера и его алгоритма оптимизации c127А индексы бывают большие, это ИМХО и имел в виду Smile: больше индексов - больше трафик, Я бы перестроил это заявление. Сложнее выборка - больше индексов затрагивается - больше трафик. "Большие" индексы затрагиваются тогда, когда именно они нужны. ВСЕГДА ли они нужны? Нет! Не раздувайте проблему из ничего. Не надо искать черную кошку в темной комнате ;) c127заранее неизвестно нужен ли индекс, может дешевле было бы проскинировать таблицу целиком. Вообще-то сканирование в Файл-сервере тоже оптимизируется (по крайней мере в Фоксе). По тем же самым законам, ибо работает тот же самый Rushmore (который можно отключать при желании). Насчет "может дешевле было бы...". Упомянутая Вами ситуация возможна. Индекс тормозит работу выборки (ибо увеличивает трафик), если под под критерий выборки попадает очень большой процент записей, сопоставимый с общим количеством записей в таблице. Итого, в такой ситуации мы получаем: 1. Выкачку индекса на клиента 2. Выкачку почти всех записей на клиента. Это конечно же "дороже", чем "безындексное": 1. Выкачка всех записей на клиента 2. Отсечение малого количества ненужных на клиенте Во втором варианте и трафик ниже и скорость выше (по причине трафика опять же). У любой медали 2 стороны и идеального ничего не бывает. Но обход таких ситуаций - это уже дело прогера ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 09:04 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 c127 Т .е. тянет индекс на клиетна именно ПОЛНОСТЬЮ и там шерстит. Вообще с трудом представляю, какой смысл в частично вытащенном индексе. 2 Aijik Из сети тянется индекс Country. Не все 5 индексов, а ТОЛЬКО индекс Country (!!!). Тянется полностью (никто о частичном вытягивании индекса не говорил, упаси боже). Вы проверяли, что ташится весь индекс, или это умозрительные построения ? Если умозрительно, то наоборот - нет никакого смысла тащить весь индекс. Индекс организован в виде дерева. Вытаскивается страница с вершиной, сравнивается с заданным значением, вытаскивается следующая нужная станица. В результате из индекса читается всего несколько страниц, а не весь индекс. И никакой разницы в работе по сети или на локальной машине. Просто обращения на чтение страницы из файла идут либо к локальному диску либо к сетевому. Для тех, кто без этого не понимает - это мое личное мнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 10:33 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
На счет того что тянется не весь индекс- это факт.. Тянутся только нужные страницы интекса. Если таблица очень большая - и спуск по дереву к нужной странице индекса - это несколько запросов по сети. А При C/S - это всегда 1 запрос. Самый кайф - это когда нужных индексов нету и - table scan по сети.:) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 12:28 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
xИ никакой разницы в работе по сети или на локальной машине Ооооооооооооо, вот только такого мне не говорите!! Я в секундах засекаю выполнение некоторых процедур, так вот, если по сети, то раз в 4-5 дольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 13:27 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
to Гостья Правильно....))) Нажал клавишу - реакция должна быть мгновенной... Или хотябы вылетать диалог: "Можете пойти поставить чайник" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 17:03 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 x, gardenman x Вытаскивается страница с вершиной, сравнивается с заданным значением, вытаскивается следующая нужная станица. В результате из индекса читается всего несколько страниц, а не весь индекс. Это мне известно С т.з. о частичной выкачке индекса соглашусь. Тесты подтверждают это. Вы правы, коллеги, конечно же - индекс тоже тянется частично. Это даже еще больше "в тему" ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 18:01 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
Вообще для всевозможных отчетов я б рекомендовал делать промежуточные таблицы результатов. Ежедневно, например ночью, запускается некий процесс, который их готовит. А отчеты уже получать по ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 19:30 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 gardenman Сомнительно, чтобы это устроило хотя бы даже небольшую часть заинтересованных в проблеме.. В большинстве случаев нужны "текущие" данные. Как говорит мой директор, "on-line" ;) А еженедельные отчеты, например, начальство хочет сразу, как только занесена в компьютер последняя "циферка"... Вот так. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 21:50 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 x >Вы проверяли, что ташится весь индекс, или это умозрительные построения? Ни то ни другое. Пошел по ссылке и прочитал. И Вам советую читать внимательнее, сразу многие вопросы снимутся. 2 Aijik >Вы разве не усмотрели разницу между озвученными понятиями "индекс" и "(все) индексы"? Я усмотрел только что Лох Позорный, на которого Вы же сами ссылаетесь по этому вопросу, сказал, что акцес "тянет индексы на клиента, там (на клиенте) их (индексы) шерстит". И где тут про то, что индексы тянутся кусками? Очевидно что ни одному нормальному человеку (даже разработчикам акцеса) в голову не придет тянуть на клиента сразу все индексы относящиеся к таблице, поэтому по-видимому Smile не имел в виду что тянутся одновременно все индекы из базы (таблицы), просто неудачно выразился. А так я согласен. >Я бы перестроил это заявление. Сложнее выборка - больше индексов затрагивается - больше трафик. "Большие" индексы затрагиваются тогда, когда именно они нужны. ВСЕГДА ли они нужны? Нет! Не раздувайте проблему из ничего. Так проблема в том, что при работе клиента одной выборкой дело не обходится, посмотрите на свой-же код. Очень часто идут несколько запросов к совершенно разным таблицам, причем в процессе работы клиента ситуация постоянно повторяется. Поэтому сводить вопрос к единственному запросу некорректно. Вообще рано или поздно выборка произойдет по любому индексированному полю или полям в базе (иначе поле проиндексировано зря, это ошибка; исключение - уникальные индексы и внешние ключи, они нужны еще и для поддержания целостности и через клиента могут не прокачиваться). Поэтому со временем ВСЕ индексы из базы пройдут через клиента. В этом смысле Smile прав: на клиента бутут вытащены все индексы, но в разное время. Напоминаю, мы говорим о клиент-сервере и с точностью до утверждения Лоха Позорного. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2004, 00:26 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
c127 Я усмотрел только что Лох Позорный, на .... поэтому по-видимому Smile не имел в виду что .... А так я согласен. Ну и ладненько. Будем считать, что вопрос о вытягивании индекса на клиента на этом закрыт ;) c127Вообще рано или поздно выборка произойдет по любому индексированному полю или полям в базе Вывод Вы какой из этого делаете, я не совсем понял? Заметьте, Вы говорите "рано или поздно". То, что части таблицы подтягиваются на клиента постепенно, по мере надобности, что в этом плохого? Чем не принципы всеми обожаемого клиент-сервера? ;)) Суть данного обсуждения (по крайней мере как я это понимаю) - это "пиковый" трафик при файл-серверной архитектуре. Именно это ставится обычно в упрек. Я утверждаю, что эта проблема непомерно раздута. Я не говорю, что трафик в Файл-сервере ниже, это не так, конечно же, ниже чем в клиент-сервере трафик сделать просто нельзя, ибо в последнем трафик при грамотном проектировании самый минимальный из вообще возможных, т.к. возвращается "чистый" результат, созданный сервером. В Файл-сервере же результат еще надо добыть (добыть на клиенте... для чего и перетягиваются на него индексы)... Однако при всем при этом проблема в Файл-сервере не имеет таких масштабов, которые ей обычно приписывают те, кто с принципами его оптимизации не знаком вообще. Самое расхожее: "Файл-сервер вытягивает по сети таблицы полностью". Расшифровываю подтекст этого заявления. "Файл-сервер тянет на клиента те данные, которые нахрен для работы не нужны". Глупость - еще раз повторяю... Не вытягивает он то, что для работы не нужно. Но... при условии грамотного применения возможностей оптимизации. При неграмотном - извините, и клиент-сервер положить можно... c127исключение - уникальные индексы и внешние ключи, они нужны еще и для поддержания целостности и через клиента могут не прокачиваться. SELECT...JOIN так или иначе выкачает ключи, опять же по причинам оптимизации c127Напоминаю, мы говорим о клиент-сервере Напоминаю, мы говорим о файл-сервере ;) c127и с точностью до утверждения Лоха Позорного. Тогда я напомню с чего всё началось: Smile укорочение за счет нормализации базы, созданием таблиц-справочников? ну, да, конечно, но в запросе будет учавствовать уже совсем другое кол-во таблиц, и все это будет обрабатываться на клиенте, так что тут еще палка о двух концах - иногда в акцессе лучше оставить данные денормализованными, именно с точки зрения скорости обработки (вернее закачки на клиент и дальнейшей обработки), опять же все зависит от задачи Со Smile совершенно справедливо заспорил Лох Позорный, где и объяснил основной принцип оптимизации выборок в Файл-сервере и что глупо отказываться от нормализации по причинам непонимания потрохов ФС. Лох Позорный Для Улыбки еще раз на пальцах. Для того, чтобы сделать выборку (разумеется на клиенте) совсем необязательно копировать по сети всю базу (весь файл .mdb), и даже совсем не обязательно тянуть по сети отдельно взятые таблицы. Если можно использовать индексы - аксес их использует. Тянет индексы на клиента, там (на клиенте) их (индексы) шерстит, после чего грузит с файл-сервера на клиент только нужные страницы с данными. Аксес - это, конечно, настольная БД, но все-таки чуть-чуть поумнее экселя будет :) Ответ Smile говорит о том, что он этого не знал: Smileтогда где он делает эту выборку??? на сервере што ли?? .... т.е. получается прямая зависимость кол-ва передаваемой информации от индексов??? хмм, а как происходит тогда обновление и удаление??? мне че-то сложно увязать его с приведенной вами схемой объясните, тогда и это на пальцах, если не трудно, конечно Собственно, в качестве продолжения этой части дискуссии и появился мой первый пост ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2004, 09:24 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 Гостья Зря вы так, любезная... Я понимаю, что нужны всегда последние циферки...) но однако.. Если взять, например такую вещь, как остаток чего-то на складе на конкретную дату. Два варианта расчета - весь приход-весь расход = остаток Или просто - взять остаток из журнала остатков на конкретный день. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2004, 12:33 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 Aijik >SELECT...JOIN так или иначе выкачает ключи, опять же по причинам оптимизации join в данном случае ни при чем. Я хотел сказать, что внешний ключ еще не позволяет добавлять в дочернюю таблицу записи, у которых нет ссылки на родительские, к оптимизации это прямого отношения не имеет. Не знаю индексирует ли такие поля акцес, но это не важно. С уникальным индексом аналогичная ситуация. >Напоминаю, мы говорим о файл-сервере ;) Да, конечно, это я по-привычке. >Вывод Вы какой из этого делаете, я не совсем понял? Заметьте, Вы говорите "рано или поздно". Тут я всего-лишь хотел сказать, что первоначальная фраза смайла о вытаскивании всех индексов на клиент, даже в ее буквальном понимании, не такая уж бессмыслица. >То, что части таблицы подтягиваются на клиента постепенно, по мере надобности, что в этом плохого? Ничего плохого в этом нет, кроме того, что сеточка все-таки грузится, пускай и не сильно. Что с файл сервером ни делай - страдает сетка. Клиент-серверу в данном случае легче, ему вообще не нужно оптимизировать сетевой трафик. Потом если вытащил индекс на клиент d (полностью или частично, не важно) - блокируй таблицу, иначе положение записи может измениться другим клиентом g и индекс находящийся у клиента d перестанет соответсвовать таблице. Или клиенты начнут ругаться, чей индекс более правильный. Я вообще не понимаю, зачем сейчас использовать ФС, если есть очень неплохие, бесплатные и к тому же легкие (работают даже на палмах и не требуют инсталляции) SQL сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2004, 06:22 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 c127 c127join в данном случае ни при чем... Я хотел сказать, что внешний ключ еще не позволяет добавлять в дочернюю таблицу записи, у которых нет ссылки на родительские... к оптимизации это прямого отношения не имеет Имеет прямое. В Visual FoxPro точно. За Accces пусть авторитетно скажут те, кто с ним работает. Уверен, что скажут они то же самое. Поддержание ссылочной целостности реализовано за счет активного использования соответствующих индексных ключей. Т.е. _оптимизировано_. Вот кусок стандартного триггера на каскадное удаление, который генерит Visual FoxPro на основе штатного генератора RIBuilder, отвечающего за поддержку ссылочной целостности в Базе данных Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
c127Не знаю индексирует ли такие поля акцес, но это не важно. Очень даже важно, иначе на больших таблицах будет тормоз. c127join в данном случае ни при чем Я имел в виду то, что поскольку SELECT использует индексы, и поскольку JOIN - операция производящаяся по ключам, то эти индексы используются оптимизатором в первую очередь, т.е. тянутся по сети Что с файл сервером ни делай - страдает сетка. Клиент-серверу в данном случае легче, ему вообще не нужно оптимизировать сетевой трафик. Это да. Так и есть Потом если вытащил индекс на клиент d (полностью или частично, не важно) - блокируй таблицу, иначе положение записи может измениться другим клиентом g и индекс находящийся у клиента d перестанет соответсвовать таблице. Что значит "положение записи может измениться"? Значение индекса изменится всмысле? Ну и нехай изменяется. Синхронизация с сетевым источником в Файл-сервере происходит автоматом по определенному интервалу - я уже писал об этом. Зачем что-то блокировать? Тем более ТАБЛИЦУ. Для просмотра вообще ничего блокировать не надо. Для редактирования - надо, но только не таблицу, а нужную запись/записи. Как раз для того, чтобы разрулить юзеров, желающих править одно и то же. Я вообще не понимаю, зачем сейчас использовать ФС, если есть очень неплохие, бесплатные и к тому же легкие (работают даже на палмах и не требуют инсталляции) SQL сервера. Если Вы не против, я уклонюсь от ввязывания во флейм по поводу ФС vs. КС. Раз первый еще не подох, а активно развивается (Visual FoxPro 9 обещают в конце года и с Access в MS никто не собирается завязывать), то значит рынку это надо... Как только рынку это будет не надо - КС вытеснит ФС окончательно. Уж кто-кто, а MS точно за $ мать родную продаст, если почуствует, что его Файл-серверные направления приносят только убытки. И вообще "неплохие, бесплатные" - это довольно подозрительно :) Всё оно обычно бесплатно до первой же банальности, которую система делать будет не уметь, а тебе оно будет ОЧЕНЬ надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2004, 09:39 |
|
скорость обработки данных!!
|
|||
---|---|---|---|
#18+
2 Aijik Я в общем со всем согласен. Имеет место недопонимание. Кода я говорю, что уникальные индексы и внешние ключи не важны, то я имею ввиду, что они не важны только в контексте данного разговора, они ЛОГИЧЕСКИ выполняют другую функцию. А вообще они конечно же важны и повышают производительность. Кстати не во всех SQL серверах индексы на внешних ключах создаются по умолчанию. >Что значит "положение записи может измениться"? Значение индекса изменится всмысле? Да, например вершина дерева в индксе переедет на другую страницу. Насчет таблицы я сказал не подумав. Но наверное можно придумать проблемы и там. >Ну и нехай изменяется. Синхронизация с сетевым источником в Файл-сервере происходит автоматом по определенному интервалу - я уже писал об этом. Ну не само же оно просисходит. Об этом подумали разработчики и написали соответствующий нетривиальный код. Больше кода - больше ошибок. Синхронизация это всегда сложная логика, причем многие конфликты автоматически не решаются. Я подозреваю, что разработчики просто блокируют заведомо с запасом, чтоб не морочить себе голову. Не зря же народ так ругает акцес в многопользовательском режиме (его точно, я знаю живые примеры, наверное и фокспро тоже ругает). >Зачем что-то блокировать? Тем более ТАБЛИЦУ. Для просмотра вообще ничего блокировать не надо. Нужно. Это если стоит dirty read (не помню точно, можно посмотреть в документации), то не нужно, а на более высоких уровнях изоляции нужно блокировать и при селекте, чтоб гарантировать, что пользователь видит актуальное состояние базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2004, 00:51 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1546674]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 300ms |
0 / 0 |