1. SQL / Говнокод #8343

    −141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    CREATE MATERIALIZED VIEW LEASE_NODES_SUMMARY_SDS
    ...
    AS
    SELECT
    ...
    FROM lease_nodes_sds;
    DECLARE
      v_count NUMBER:=0;
    BEGIN
      LOOP
      SELECT COUNT(1) INTO v_count FROM lease_nodes_summary_sds;
      EXIT WHEN v_count>0;
      END LOOP;
    END;

    Торопиться некуда. Будем ждать пока появятся строки в lease_nodes_sds...

    Запостил: slbsomeone, 28 Октября 2011

    Комментарии (16) RSS

    • а как, к слову, по другому?

      у меня было такое впечатление что базы так и не научились делать real-time notifications. и не собираются, потому что, типа, они только данные хранят и все. (это отмазка которую я от оракла слышал.)
      Ответить
      • это не дело базы - раздавать real-time notifications
        там есть уведомления, но не real-time:
        Oracle Streams Advanced Queuing называется - очередь сообщений с транзакциями и гарантированной доставкой, позволяет вешать различные callback'и (в т.ч. и pl/sql).
        лехко интегрируется с другими реализациями очередей (напрямую с JMS, или через messaging gateway с другими реализациями очередей)

        Если чо в рил-тайме надо, то через триггеры.
        Ответить
        • другими словами - нет.
          Ответить
          • другими словами вы хотите, чтобы база и дрочила, и танцевала вприсядку.
            Ответить
            • нет. просто задача достаточно распростарненная: знать когда в базе появляются новые данные.

              что бы вот до таких дрочений как в ГК не опускатся.

              у нас в проекте есть пара модулей которые раз в секунду данные опрашивают в базе. тоже говно. почему у нас народ и забацал свою in-memory DB со всеми причиндалами, используя RDBMS только как бэкап. но для пары вещей та пара модулей так и остались - тихо в сторонке дрочат запросами в вечном цикле - база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных...
              Ответить
              • о, вспомнил, dbms_alert еще есть
                Ответить
                • повтыкаю на досуге. (если этот пэкадж у нас на базах вообще установлен.)

                  http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_alert.htm

                  не вижу как сделать M читающий приложений и N пишущих приложений, ну да это пока сам руками не пощупаешь - не въедешь.
                  Ответить
              • А, если данные только через сервис гонять?
                Ответить
                • приложения писаные самим клиентом доступа к мидлваре не имеют по комерческим причинам. преимущественно по той причине что клиенты сами не хотят: найти дешевых индусов которые втыкают жабу + дб легко - индусы которые понимают что такое миддлваре и умеют ими пользоватся стоят дороже.
                  Ответить
                  • Еще в большинстве сложно ограничить доступ к данным по записи (не ко всей таблице, а к конкретным данным). Да так, чтоб еще и Entity Framework.
                    Тоже распространенная задача, например *сообщения пользователя*.
                    Решается либо процедурами и полным ограничением на привычные CRUD операции.
                    Либо опять же сервисом. (В большинстве случаев это web-сайт).
                    ---
                    Или я не прав? Есть еще варианты решения?
                    Ответить
                    • Да почему же сложно ограничить доступ к данным по записи?!

                      В Oracle (с 8i) есть Fine Grained Access Control. Уверен что и в других СУБД есть что-то подобное.

                      Неужели Вы думаете что Вы первый столкнулись с этой (или любой другой) задачей?
                      То с чем сталкивается большинство уже десятки (если не сотни раз) было решено. Просто откройте глаза и посмотрите вокруг. И найдете вариант, подходящий для Вашей задачи.
                      Ответить
                      • Вот именно, что задавал вопрос на msdn, так чтобы успешно работать с Entity Framework, NH сложно найти решения. И разграничение по записи не такая тривиальная задача выходит.
                        В моём случае Firebird и MSSQL. Про то, что в oracle что-то есть слышал, но так же слышал, что это больше фитча, чем решение.
                        Я правда может не нашел.
                        Вот вопрос мой:
                        http://social.msdn.microsoft.com/Forums/ru-RU/fordataru/thread/99539982-e063-4679-8232-bcf15c8cc9ab
                        Там отправили на ответ:
                        http://social.msdn.microsoft.com/Forums/ru-RU/fordataru/thread/21a0b5dc-b33a-4fe1-a662-046d6624cf40
                        Где советуют WCF.
                        PS
                        Еще появилась ссылка на http://technet.microsoft.com/en-us/library/cc966395.aspx
                        "Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005"
                        . Посмотрю её тоже.
                        Ответить
              • Достаточно распространенная задача - "вызов такси".

                Я звоню - вызываю такси.
                Мне отвечают - "Ваш заказ принят, звоните каждую минуту спрашивайте подъехала ли машина."
                На моё удивлённое - "Ни х...я себе!"
                Мне отвечают - "Это хорошая реализация. У всех клиентов каждую минуту актуальная информация", "А как Вы узнаете что за Вами приехали" и "Это не дело нашей фирмы раздавать real-time notifications"

                Со мной такого не случалось, но если случится я подумаю, что попал в компанию идиотов, и буду вызывать такси в другой фирме.

                P.S. у меня намек не слишком тонкий?
                Ответить
          • Другими словами - "Глядя как кто-то дергает писю, трудно понять, он хочет получить удовольствие или оторванную писю".

            Зачем "real-time notifications"? Что хотите получить? Может стоит пересмотреть архитектуру приложения?
            Ответить
    • показать все, что скрытоvanished
      Ответить
    • Я только кивнул в ответ, но он не отпускал меня, все больше распаляясь, и только когда я вынул руку из его штанов, он вскочил, моментально снял штаны, его напряженный член качнулся из стороны в сторону, как метроном, и Пашка снова бросился на меня, как будто я могу убежать. Он стал целовать мое лицо, уже более нежно, шею, грудь, живот, быстро справился с пуговицей и молнией на моих уже трещащих по швам джинсах, стянул одним рывком с бедер и замер раскрыв рот и уставившись на мой подрагивающий в ожидании орган. Вырвавшись из тесного плена штанов он разбух до предела и подрагивал в такт бешеному пульсу. Я почувствовал, как плоть окончательно освободила головку.
      Ответить

    Добавить комментарий