toll Опубликовано 5 мая, 2010 Жалоба Поделиться Опубликовано 5 мая, 2010 Есть вопросы Ссылка на комментарий
Petrovichtim Опубликовано 5 мая, 2010 Жалоба Поделиться Опубликовано 5 мая, 2010 задавай Ссылка на комментарий
toll Опубликовано 6 мая, 2010 Автор Жалоба Поделиться Опубликовано 6 мая, 2010 Petrovichtimок1 запросы пишешь?2 на Delphi (или другом языке) данные с ms sql вытягивал ... изменял .. Ссылка на комментарий
Petrovichtim Опубликовано 6 мая, 2010 Жалоба Поделиться Опубликовано 6 мая, 2010 1 да пишу select* и тд))2 Delphi обожаю))) Ссылка на комментарий
Lucky Опубликовано 6 мая, 2010 Жалоба Поделиться Опубликовано 6 мая, 2010 давай уже, не томи... Ссылка на комментарий
toll Опубликовано 7 мая, 2010 Автор Жалоба Поделиться Опубликовано 7 мая, 2010 Petrovichtimок 1 вопрос :конект к базе делаю через 1pod.udl .... поставил галочку сохранить пароль ... но при запуске моей программы пароль запрашивается... как сделать чтоб не запрашивался? Ссылка на комментарий
Petrovichtim Опубликовано 7 мая, 2010 Жалоба Поделиться Опубликовано 7 мая, 2010 Понятия не имею о чём вы, я через ADO подключаюсь Ссылка на комментарий
Lucky Опубликовано 7 мая, 2010 Жалоба Поделиться Опубликовано 7 мая, 2010 нужно поставить ADOConnection.LoginPrompt := false (по-умолчанию стоит true) Ссылка на комментарий
toll Опубликовано 7 мая, 2010 Автор Жалоба Поделиться Опубликовано 7 мая, 2010 Petrovichtimдык и я по АДОLuckyпомогло больше не просит паролей Ссылка на комментарий
CooDi Опубликовано 7 мая, 2010 Жалоба Поделиться Опубликовано 7 мая, 2010 польше нету вопросов? Ссылка на комментарий
toll Опубликовано 7 мая, 2010 Автор Жалоба Поделиться Опубликовано 7 мая, 2010 CooDiесть ... глобальныйесть 3 таблички ... А Б иСА связана 1-многие с Б... Б связана 1-многие с С ... мне нужно выбрать данные с А и С ... если делаю методом "лопата"where (A.id = Б.idA)and(Б.id = С.idБ)and(дата = .....)and(ююю) -тормозит жутко ... поидее должен быть способ сделать выборку последовательно Ссылка на комментарий
CooDi Опубликовано 8 мая, 2010 Жалоба Поделиться Опубликовано 8 мая, 2010 это даже не SQL относится, а вообще к программированию. Сначала задай условия, отсекающие лишние записи А, потом выборка по А.id, затем отсекаем лишние В а потом выборка по B.id. и и т.д.тоесть типаwhere (A.data=....) and (A.id = Б.idA) and (Б.фамилия=...) and (Б.id = С.idБ) and (ююю).может по синтаксису я и не правильно написал, но надеюсь общий смысл понятен. Это очень сильно уменьшает объем обрабатываемых данных. Ссылка на комментарий
Lucky Опубликовано 8 мая, 2010 Жалоба Поделиться Опубликовано 8 мая, 2010 tollСдаётся мне, неспроста такие вопросы...В общем, чтобы не тормозило, создавай индексы - даёт ну оооооочень большой скачок в производительности. Причём, индексы в таблицах должны соответствовать тем полям, по которым идёт сравнение (т.е., в том числе и составные индексы).И можно воспользоваться разного рода соединениями через JOIN, например:SELECT t1.FieldA, t3.FieldBFROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.ID_t2 = t2.ID AND t2 LEFT OUTER JOIN Table3 t3 ON t2.ID_t3 = t3.IDCooDiЧтобы данные отсечь, их нужно сначала найти, а для этого и применяют индексы. Ссылка на комментарий
toll Опубликовано 10 мая, 2010 Автор Жалоба Поделиться Опубликовано 10 мая, 2010 Luckyкак работают viewsы, это динамические или статические таблицыесть ли разница брать информацию с views или из таблиц... Ссылка на комментарий
Lucky Опубликовано 10 мая, 2010 Жалоба Поделиться Опубликовано 10 мая, 2010 Views (вьюшки) - динамические представления данных.Её состав определяется командой выборки данных (SELECT).Вьюшка определена заранее, простой выбор из таблицы - более гибок. Кроме того, к вьюшке нельзя создавать индексы.Основное назначение - отражение данных конечному пользователю (т.к. даёт доступ только на просмотр данных), т.е. через вьюшку данные нельзя изменить. Ссылка на комментарий
toll Опубликовано 10 мая, 2010 Автор Жалоба Поделиться Опубликовано 10 мая, 2010 Lucky(я знаю одного лаки ... Петю ...)про вьюшку я понял что это отражение данных ... вот вопроэ это отдельная табличка или же она создается в момент обращения и тогда проще сразу к таблицам обращаться Ссылка на комментарий
Lucky Опубликовано 10 мая, 2010 Жалоба Поделиться Опубликовано 10 мая, 2010 Нет, Я не Петя.Фраза "динамическое представление данных" разве не означает, что этот набор создаётся в момент обращения к представлению?как работают viewsы, это динамические или статические таблицыОтвет - динамические наборы данных (НЕ таблицы). Т.е., обращаясь к вьюшке за данными (например, SELECT * FROM View1) мы, по-сути, исполняем тот запрос, который её и формирует.Например, пускай представление View1 определено как SELECT * FROM Table1 WHERE Field3>100Тогда запрос вида SELECT * FROM View1можно представить в виде следующего запроса: SELECT * FROM (SELECT * FROM Table1 WHERE Field3>100) v1Не помню, как насчёт MS SQL, но в Oracle есть материализованные представления (т.е. это вьюшки, у которых хранится результат в виде таблицы).Через вьюшки обычно решается распределение прав доступа к тем или иным данным - кому попало давать права на просмотр всей таблицы нет необходимости. Поэтому, вьюшки являются неким инструментом в разграничении таких прав - мы даём пользователю права на просмотр вьюшки, а не всей таблицы, тем самым оберегая себя от непредвиденных последствий (вдруг тот окажется "прошаренным маньяком" и понапакостит в данных). Таким образом, исходя из соображений безопасности, конечному пользователю данные следует передавать посредством представлений, а внесение изменений осуществлять посредством процедур (т.е. исключить прямой доступ к данным).А теперь, ВНИМАНИЕ, встречный вопрос: "В примере про JOIN я допустил ошибку. В каком месте?". Ссылка на комментарий
genemy Опубликовано 11 мая, 2010 Жалоба Поделиться Опубликовано 11 мая, 2010 SELECT t1.FieldA, t3.FieldBFROM Table1 t1LEFT OUTER JOIN Table2 t2 ON t1.ID_t2 = t2.IDAND t2 --это лишнее или тут условия не хватаетLEFT OUTER JOIN Table3 t3 ON t2.ID_t3 = t3.IDДобавлено спустя 26 секунд:через вьюшку данные нельзя изменитьможно иногда Ссылка на комментарий
X-tender Опубликовано 11 мая, 2010 Жалоба Поделиться Опубликовано 11 мая, 2010 понапакостит в данныхLucky, не совсем верно. Если роль позволяет лишь читать, то напакостить не сможет в таблице. Другое дело, что вьюха может представляют более ограниченный набор данных. Например, запретить пользователям просматривать информации не его уровня. Уровень будет в поле access_level. И вьюхи будут выбирать именно с определнным access level'ом. Ссылка на комментарий
Lucky Опубликовано 11 мая, 2010 Жалоба Поделиться Опубликовано 11 мая, 2010 Конечно, ответ хотелось услышать от toll'a, но, что-то он молчит...genemyДа, ты прав, ЭТО лишнее.И прав в том, что через вьюшки можно данные менять, что-то я подрастерялся малость...X-tenderЯ и имел в виду ограниченный набор данных.Через вьюшки обычно решается распределение прав доступа к тем или иным данным - кому попало давать права на просмотр всей таблицы нет необходимости. Да и явное ограничение по действиям пользователя определяется набором его прав (т.е., у одного пользователя может быть несколько ролей). Ссылка на комментарий
toll Опубликовано 11 мая, 2010 Автор Жалоба Поделиться Опубликовано 11 мая, 2010 Luckyя не волшебник ... я только учусь Ссылка на комментарий
X-tender Опубликовано 12 мая, 2010 Жалоба Поделиться Опубликовано 12 мая, 2010 Кстати про материализованные вьюхи, они как раз и служат в том числе и для того чтобы облегчить запросы, т.к. в них хранятся агрегированные записи. То есть если есть определенный диапазон данных запрашиваемых чаще прочего, а общий объем данных слишком велик, то сразу стоит подумать именно о них в качестве ускорения выборок. Помимо этого варьируя ее параметры обновления можно оптимизировать и под конкретные характеристики обновляемости самих данных. Например, нужно выводить топ 100 пользователей по количеству сообщений понедельно и в целом, а новые записи появляются в секунду по 100 штук, тогда создадим вьюху и установим ее обновление по запросу, а запрос будем выполнять еженедельно по планировщику. Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти