На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> сжать базу IB после удаления записей
    В одной из таблиц базы под InterBase было удалено огромное число записей, но её размер так и остался 560М. Как уменьшить?  Извините, но FAQ ещё нет.
      запаковать и распаковать из консоли .
      вроде через gbak . я не пробовал
        Я запустила gdbak, через IB Expert -> Backup Database. Выполнялось 20 часов, после чего процесс пришлось остановить, т.к. работать надо. Запущу на выходные, хотя, может, тут проблема в самой базе?
          приведи скрипт на создание таблиц
            Скажу сразу - базу создавала не я. Я вообще с ИнтерБейсом раньше не работала.
            Тут 20 таблиц. Удалялись записи из mbew_hawa.

            CREATE TABLE ACCONTING_FERT (
               NAME_FERT  CHAR(16) NOT NULL,
               N_MACHIN   CHAR(16) NOT NULL,
               KOEF       FLOAT,
               NOM        CHAR(1) NOT NULL,
               HAWA       CHAR(16) NOT NULL,
               MEING      CHAR(3) NOT NULL,
               AMOUNT     FLOAT NOT NULL
            );
            CREATE TABLE APPLICATION (
               NOM        INT_TYPE NOT NULL,
               DATA1      DATE NOT NULL,
               NUMBER     KOEF_TYPE NOT NULL,
               NAME_FERT  NAME_TYPE NOT NULL,
               AMOUNT     KOEF_TYPE NOT NULL,
               WERKS      WERKS_TYPE NOT NULL,
               RIK        INT_TYPE NOT NULL
            );
            CREATE TABLE DIC_BRIGADE (
               NAME_WERKS    WERKS_TYPE NOT NULL,
               NAME_BRIGADE  NAME_TYPE NOT NULL,
               BRIGADE       CHAR1_TYPE NOT NULL
            );
            CREATE TABLE DIC_BWART (
               BWART       MIENGE_TYPE NOT NULL,
               NAME_BWART  NAME_TYPE NOT NULL,
               MARK        CHAR_TYPE NOT NULL,
               KIND        CHAR_TYPE NOT NULL
            );
            CREATE TABLE DIC_CHIEF_CHANGE (
               NAME_WERKS  WERKS_TYPE NOT NULL,
               NAME_CHIEF  NAME_TYPE NOT NULL,
               CHIEF       CHAR1_TYPE NOT NULL
            );
            CREATE TABLE DIC_CUSTOMER (
               CUSTOMER       NAME_TYPE NOT NULL,
               NAME_CASTOMER  CUSTOMER_TYPE NOT NULL,
               ADRESSES       NAME_TYPE NOT NULL,
               TEL            NAME_TYPE NOT NULL,
               E_MAIL         NAME_TYPE
            );
            CREATE TABLE DIC_DILN (
               N_MACHIN  NAME_TYPE NOT NULL,
               NAME      NAME_TYPE NOT NULL
            );
            CREATE TABLE DIC_FERT (
               NAME    NAME_TYPE NOT NULL,
               MEINGE  MIENGE_TYPE NOT NULL,
               KOEF    KOEF_TYPE,
               KIND    MIENGE_TYPE NOT NULL,
               WEIGHT  WEIGHT_TYPE NOT NULL,
               MENGEA  MIENGE_TYPE NOT NULL
            );
            CREATE TABLE DIC_HAWA (
               NAME_HAWA  NAME_TYPE NOT NULL,
               MEING      MIENGE_TYPE NOT NULL,
               DENSITY    KOEF_TYPE,
               PRICE      KOEF_TYPE NOT NULL,
               KIND       MIENGE_TYPE NOT NULL,
               MENGEA     MIENGE_TYPE,
               NHOURS     KOEF_TYPE
            );
            CREATE TABLE DIC_KIND (
               KIND       MIENGE_TYPE NOT NULL,
               NAME_KIND  NAME_TYPE NOT NULL
            );
            CREATE TABLE DIC_LGORT (
               NUMBER      WERKS_TYPE NOT NULL,
               NAME_WERKS  WERKS_TYPE NOT NULL,
               NAME_LGORT  NAME_TYPE NOT NULL
            );
            CREATE TABLE DIC_MEINGE (
               MIENGE       MIENGE_TYPE NOT NULL,
               NAME_MAINGE  NAME_TYPE
            );
            CREATE TABLE DIC_VALVE (
               KOD         CHAR(3) NOT NULL,
               NAME_VALVE  NAME_TYPE,
               SIZE1       KOEF_TYPE NOT NULL
            );
            CREATE TABLE DIC_WERKS (
               NUMBER      WERKS_TYPE NOT NULL,
               NAME_WERKS  NAME_TYPE NOT NULL
            );


            Записи удалялись из этой:

            CREATE TABLE MBEW_HAWA (
               WERKS      WERKS_TYPE NOT NULL,
               LGORT      WERKS_TYPE NOT NULL,
               HAWA       NAME_TYPE NOT NULL,
               AMOUNT     WEIGHT_TYPE NOT NULL,
               AMOUNTS    WEIGHT_TYPE NOT NULL,
               AMOUNT_T   WEIGHT_TYPE NOT NULL,
               AMOUNTS_T  WEIGHT_TYPE NOT NULL,
               AMOUNT_R   WEIGHT_TYPE NOT NULL,
               AMOUNTS_R  WEIGHT_TYPE NOT NULL,
               SUMA       WEIGHT_TYPE NOT NULL,
               SUMA_T     WEIGHT_TYPE NOT NULL,
               SUMA_R     WEIGHT_TYPE NOT NULL,
               DENSITY    DENSITY_TYPE NOT NULL,
               BWART      BWTAR1_TYPE NOT NULL,
               A          KOEF_TYPE,
               RIK        INT_TYPE
            );
            CREATE TABLE MOVEMENT_HAWA (
               NUMBER_DOC      INT_TYPE NOT NULL,
               DATE_PROV       DATE NOT NULL,
               DATE_DOC        DATE NOT NULL,
               BWART           MIENGE_TYPE NOT NULL,
               PUSSLIERS       NAME_TYPE,
               WERKS           WERKS_TYPE NOT NULL,
               LGORT           WERKS_TYPE NOT NULL,
               WERKS_S         WERKS_TYPE,
               LGORT_S         WERKS_TYPE,
               DILN            NAME_TYPE,
               HAWA            NAME_TYPE NOT NULL,
               AMOUNT          WEIGHT_TYPE NOT NULL,
               AMOUNTS         WEIGHT_TYPE,
               A               KOEF_TYPE,
               B               KOEF_TYPE,
               C               KOEF_TYPE,
               NOM             CHAR_TYPE,
               TRANS           CHAR(16),
               POZ             INT_TYPE NOT NULL,
               BWTAR           BWTAR1_TYPE,
               CHIEF           CHAR1_TYPE NOT NULL,
               CHIEF_S         CHAR1_TYPE,
               NUMBER_DOC_STR  INT_TYPE,
               BWTAR_TMP       BWTAR1_TYPE NOT NULL,
               RIK             INT_TYPE NOT NULL,
               BRIGADE         CHAR1_TYPE
            );
            CREATE TABLE PUSSLIER (
               PUSSLIER  NAME_TYPE NOT NULL,
               NAME      CUSTOMER_TYPE NOT NULL,
               ADRESSES  NAME_TYPE NOT NULL,
               TEL       NAME_TYPE NOT NULL,
               E_MAIL    NAME_TYPE,
               CITY      NAME_TYPE
            );
            CREATE TABLE STRUCTURE (
               KOD             CHAR(3) NOT NULL,
               NAME_STRUCTURE  NAME_TYPE,
               SIZE1           KOEF_TYPE NOT NULL
            );

              ты не боишься что 0дно значение случайно ставнее null которое описано как NOT NULL
              завалит всю таблицу и ты её не сможешь открыть .
                для создания резервной копии надо найти прогу gbak.exe
                D:\ib_server\bin\gbak.exe например и запустить её с ключем например

                gbak -b - user SYSDBA -password masterkey D:\ib_server\base.gdb D:\ib_server\base.gbk 650M

                будет создан архив D:\ib_server\base.gbk

                  потом распокавать архив

                  gbak -с - user SYSDBA -password masterkey D:\ib_server\base.gbk D:\ib_server\base_shat.gdb

                  base_shat.gdb будет меньше чем base.gdb засчет отсудствия удаленных записей
                  Сообщение отредактировано: pigas -
                    2 pigas   Я делаю всё, так как ты говоришь, и за 9 часов бэкап ещё не закончился. Это нормально?
                    А на счёт NOT NULL - как значение может "случайно" стать NULL?  Зачем тогда это ограничение вообще?  ???
                      1) Значение случайно станет пустым если ты случайно вовремя отключишь питание .
                      Это по IB FAQкам самая распространенная поломка базы.

                      2) Это много 9 часов - иши более мошный комп .или придумай еще чегонибудь
                        хотя если чесно я никогда не делал архивной копии
                          А где можно скачать IB FAQ ?
                            Цитата Lents, 23.10.03, 09:17:05
                            А где можно скачать IB FAQ ?


                            У меня скачено 5 М факов но они все на английском и лень читать
                            тут есть небольшой кусок
                            http://www.sql.ru/docs/interbase/ibfaq.shtml

                            да и вообше
                            www.sql.ru
                              спасибо.
                                нарыл тут
                                http://alexpanf.nm.ru/books/ibsql/
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0295 ]   [ 15 queries used ]   [ Generated: 27.04.24, 11:46 GMT ]