|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
Здравствуйте! Можно ли как-то запретить прикладникам выполнять выборки по определенным либо по не индексированным полям? Пример: table example ( a integer, b lvarchar(16384) ); create index on example(a); нормальные люди пишут: insert into example(a, b) values(4, 'some data'); затем поиск select from example where a==4... умельцы пишут: insert into example(b) values('4:'||'some data'); затем поиск select from example where b like '4:%' Пример, конечно приблизительный, чтобы передать саму суть талантов. Отсюда возник вопрос - можно как-то запретить в принципе использование определенных полей в выборках так, чтобы в where оно было недоступно, но доступно в select-ах. Т.е. чтобы поиск делался по тем полям, которые в базе заложены для этого - по индексам, чтобы искало нужные строки и уже там выдавало громоздкие и/или не индексированные поля. Через доступы - если отобрать право select на определенные поля - то они становятся недоступными СОВСЕМ, поэтому это не решение. Есть какое-то решение такой проблемы, кроме как стоять с дубинкой у программистов-прикладников над душой? Сервер 11.50FC6. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2010, 22:43 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
нет, нельзя. Идиотизм программистов лечится участием DBA / Dev DBA в разработке на ранней стадии проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2010, 02:53 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
falcon111, с ходу отобрать такое право, НАВЕРНОЕ, нельзя... :) Но хотя бы подумать над методами контроля (в том числе и [полу]автоматическими) - нужно. Проблема, в первую очередь, в производительности, как я понял. Контроль на ранней стадии проекта, как предлагает Выбегалло, хорошо - но мало (разве что сразу выгонять из проекта таких девелоперов %)). Дополнительно поможет обучение методике составления SQL-запросов, в котором напомнить, что проверка производительности - задача сначала разработчика, и только потом тестировшика - если этот тестировщик есть ваще :). Ну и, если позволяют мощности системы, устраивать контроль по факту случившегося. Источник: лог sql-запросов. Его анализ позволит и другие интересные вещи обнаружить. Чтобы не ковырятся во всем логам, можно обращать внимание на "долгоиграющие" и "сильножрущие"... Ну а уж анализировать разбором SQL-запросы и сопоставлять по каким-то правилам со схемой БД - совсем не "наколеночная" работа... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2010, 16:25 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
АнатоЛой Источник: лог sql-запросов. Его анализ позволит и другие интересные вещи обнаружить. oat+sqltrace ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2010, 17:07 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
falcon111 Есть какое-то решение такой проблемы, кроме как стоять с дубинкой у программистов-прикладников над душой? Есть, но оно длительное по времени и затратное по ресурсам. Это медленное и неуклонное повышение квалификации ваших разработчиков и ПМ в частности. Как показывает мой опыт, никакие частные карательные меры или ухищрения технологические, о которых вы просите, не помогут в долгосрочной перспективе. Через руководство, убеждение в необходимости, пропоганду и пр. организовывать или краткие "технические семинары" (по 1-2 часа в неделю) или учебные программы (в нерабочее время или рабочее, ежедневно, по 2-4 часа в течении 1-2 недель с избранными , наиболее насущными вопросами. Чтобы не спали и внимательно слушали - тесты, экзамены и уже репресивные меры при повторении ошибок. Написание "памяток" и формирование "базы знаний" с типовыми ошибками, через которую прогонять новичков. Потом, при сформированном ядре нрамотной команды, новички уже значительно быстрее впитывают опыт старых членов команды и ошибок становится минимум. Все остальное - грамотное проектирование, комплексное тестирование, управление проектом и пр. остается, конечно же, но уровень программистов просто нужно повышать (или набирать с рынка, если можете себе позволить). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2010, 18:44 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
Организационные методы поднятия квалификации программистов и методы разбора полетов постфактум, глядя в лог запросов - это понятно. Жаль что не предусмотрено отдельного доступа для таких целей. Всем спасибо за ответы, будем бороться с маразмом дальше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2010, 19:51 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
falcon111 Можно ли как-то запретить прикладникам выполнять выборки по определенным либо по не индексированным полям? Сам подумай по технологии запретить использовать функционал по получению данных в одном месте (WHERE) и разрешить к тому же функционалу, но в другом месте (SELECT). Видеть право имеешь, а вот искать по этим данным - нет. Это уже больше на баг похоже... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2010, 10:25 |
|
Можно ли как-то запретить прикладникам выборки без индексов?
|
|||
---|---|---|---|
#18+
АнатоЛойfalcon111, с ходу отобрать такое право, НАВЕРНОЕ, нельзя... :) Но хотя бы подумать над методами контроля (в том числе и [полу]автоматическими) - нужно. Проблема, в первую очередь, в производительности, как я понял. Контроль на ранней стадии проекта, как предлагает Выбегалло, хорошо - но мало (разве что сразу выгонять из проекта таких девелоперов %)). Дополнительно поможет обучение методике составления SQL-запросов, в котором напомнить, что проверка производительности - задача сначала разработчика, и только потом тестировшика - если этот тестировщик есть ваще :). Пардон, но, судя по примеру - это явная попытка нарушения нормализации. То есть девелоперы хотят хранить не одно значение, а несколько. В одном столбце. Сначала прочитать лекции "архитекторам" и примкнувшим к ним кодерам, что такое 3NF и почему за ее нарушение без ОЧЕНЬ веских причин - расстрел за сараем с последующим увольнением по профнепригодности. Потом - отслеживать, расстреливать и увольнять. А умение писать SQL запросы появится само. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2010, 10:22 |
|
|
start [/forum/topic.php?fid=44&msg=36653534&tid=1607572]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 147ms |
0 / 0 |