|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Я наполняю таблицу только один раз 100 млн рекордсами. В таблице уже имеются 1000 рекордсов, которые мне нужно размножить. Я отключила логирование след. командои: alter table test activate not logged initially. Вопрос: значит вставляем без записи в LOG, но он выдал сообщение, что LOG is full, а значит он писал все в LOG. Как стереть переполненныи LOG, если он не содержит жизненно -важную инфу, чтобы продолжить игры со вставлением 100 млн . рекордсов ? В SQK Server есть опция: Detachment and deleting of *.ldb file . Работа от этого не нарушается. Имеется ли что-то подобное в ДБ2? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2005, 12:00 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Если от тебе такую фигню говорит, что лог полон, то значит ты его не отключила. утилитку db2 нужно запускать так: db2 -c- чтобы отключить автокоммит. Похоже у тебя после alter table ... сразу commit идет, и табличка так и остается logged... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 10:18 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
А почему ты не хочешь воспользоваться LOAD from cursor. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 14:05 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenmanЕсли от тебе такую фигню говорит, что лог полон, то значит ты его не отключила. утилитку db2 нужно запускать так: db2 -c- чтобы отключить автокоммит. Похоже у тебя после alter table ... сразу commit идет, и табличка так и остается logged... ------------------------------ Запустила с alter table... без логирования, с отменой autocommit и явным commit внутри кода. alter table test activate not logged initially - действует ли эта команда на таблицу с данными или нужно применять ее только после создания таблицы без данных? В следующем коде имеется таблица test, в которои есть 1000 записей. Нужно получить 100 млн записей. Запускаю цикл до 10000 записей и потом commit. -------- alter table test activate not logged initially @ BEGIN atomic declare startRow integer default 0; declare endRow integer default 0; declare step integer default 0; declare lastStep integer default 0; declare currStep integer default 0; set startRow = (SELECT MAX(ID) FROM test ); set endRow=10000; set CountStep = endRow/startRow; WHILE currStep < CountStep DO INSERT INTO test(ID,TEXT) SELECT ID+startRow,TEXT FROM test; SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; END @ commit@ -------------------------- db2cmd db2 -v -td@ -f c:\test\test.sql ----------------- Нужно запустить этот блок 10000 раз, чтобы получить 100 млн. Как написать 2 вложенных цикла, чтобы commit делался только после вставки 10000 записеи ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 14:40 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
1)Как только commit сделаешь, табличка, которая была not logged , опять станет logged. Еще раз говорю - not logged действует до первого commit-a! 2)Если ты сделаешь табличку not logged, то к ней ни одна другая сессия не сможет обратиться. Она заблокируется эксклюзивно! 3)Внутри begin atomic... end - нельзя вставлять commit Следовательно (=>) сразу в одном блоке begin atomic... end вставляй все свои 100млн записей. Или пиши ХП! которая в цикле будет бахать commit через каждые 1000 записей. Честно говаря я уж устал все это объяснять. Скажи, какая структура у твоей таблицы, я те напишу скрипт на заполние тестовыми данными... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 15:31 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenman - это уже перебор.... Вместо удочки ты всучиваешь рыбку.... Так тебе придеться всех до конца дней кормить... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2005, 16:11 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenman1)Как только commit сделаешь, табличка, которая была not logged , опять станет logged. Еще раз говорю - not logged действует до первого commit-a! 2)Если ты сделаешь табличку not logged, то к ней ни одна другая сессия не сможет обратиться. Она заблокируется эксклюзивно! 3)Внутри begin atomic... end - нельзя вставлять commit Следовательно (=>) сразу в одном блоке begin atomic... end вставляй все свои 100млн записей. Или пиши ХП! которая в цикле будет бахать commit через каждые 1000 записей. Честно говаря я уж устал все это объяснять. Скажи, какая структура у твоей таблицы, я те напишу скрипт на заполние тестовыми данными... ------------------------------ Имеется SourceTable, в которои заданы 1000 записеи. Необходимо ими наполнить таблицу DestTable до 100 млн записей, изменяя 3 поля, что видно из следующего кода. Имеются 2 процедуры - одна вставляет 1000 записей, а вторая - в цикле вызывает первую 100000 раз, чтобы получить 100 млн записей. Но все это берет 8 часов. Выглядет все это не очень логично, ибо Oracle и SQL Server сделали это намного быстрее. Как можно улучшить performance? ---------------P_PopulateBy1000 create procedure P_PopulateBy1000() language SQL MODIFIES SQL DATA BEGIN DECLARE startRow INTEGER DEFAULT 0; SET startRow = (SELECT MAX(Id) FROM DestTable); INSERT INTO DestTable (PermanentId, Id, F24, F32, F39, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23) SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM SourceTable; commit; end -----------------------P_MillionRecPopulation create procedure P_MillionRecPopulation(in EndNumOfRows integer) language SQL MODIFIES SQL DATA BEGIN DECLARE startRow INTEGER DEFAULT 0; DECLARE endRow INTEGER DEFAULT 0; DECLARE step INTEGER DEFAULT 0; DECLARE lastStep INTEGER DEFAULT 0; DECLARE currStep INTEGER DEFAULT 0; SET startRow = (SELECT MAX(Id) FROM DestTable); SET endRow = EndNumOfRows; SET lastStep = (endRow-startRow)/1000; WHILE (currStep < lastStep) DO call P_PopulateBy1000(); SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; end ----------------------- call P_MillionRecPopulation(100000000) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2005, 15:04 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Toskana gardenman1)Как только commit сделаешь, табличка, которая была not logged , опять станет logged. Еще раз говорю - not logged действует до первого commit-a! 2)Если ты сделаешь табличку not logged, то к ней ни одна другая сессия не сможет обратиться. Она заблокируется эксклюзивно! 3)Внутри begin atomic... end - нельзя вставлять commit Следовательно (=>) сразу в одном блоке begin atomic... end вставляй все свои 100млн записей. Или пиши ХП! которая в цикле будет бахать commit через каждые 1000 записей. Честно говаря я уж устал все это объяснять. Скажи, какая структура у твоей таблицы, я те напишу скрипт на заполние тестовыми данными... ------------------------------ Имеется SourceTable, в которои заданы 1000 записеи. Необходимо ими наполнить таблицу DestTable до 100 млн записей, изменяя 3 поля, что видно из следующего кода. Имеются 2 процедуры - одна вставляет 1000 записей, а вторая - в цикле вызывает первую 100000 раз, чтобы получить 100 млн записей. Но все это берет 80 часов. Выглядет все это не очень логично, ибо Oracle и SQL Server сделали это намного быстрее. Как можно улучшить performance? ---------------P_PopulateBy1000 create procedure P_PopulateBy1000() language SQL MODIFIES SQL DATA BEGIN DECLARE startRow INTEGER DEFAULT 0; SET startRow = (SELECT MAX(Id) FROM DestTable); INSERT INTO DestTable (PermanentId, Id, F24, F32, F39, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23) SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM SourceTable; commit; end -----------------------P_MillionRecPopulation create procedure P_MillionRecPopulation(in EndNumOfRows integer) language SQL MODIFIES SQL DATA BEGIN DECLARE startRow INTEGER DEFAULT 0; DECLARE endRow INTEGER DEFAULT 0; DECLARE step INTEGER DEFAULT 0; DECLARE lastStep INTEGER DEFAULT 0; DECLARE currStep INTEGER DEFAULT 0; SET startRow = (SELECT MAX(Id) FROM DestTable); SET endRow = EndNumOfRows; SET lastStep = (endRow-startRow)/1000; WHILE (currStep < lastStep) DO call P_PopulateBy1000(); SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; end ----------------------- call P_MillionRecPopulation(100000000) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2005, 18:50 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
По Id существует индекс? В каком табличном пространстве располагается таблица? Какой буферпул привязан к табличному пространству? Каков размер этого буферпула? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 12:37 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenman Код: plaintext 1.
По Id существует индекс? В каком табличном пространстве располагается таблица? Какой буферпул привязан к табличному пространству? Каков размер этого буферпула? ----------------------------- -- Database Name: MyDBName CONNECT TO MyDBName; ------------------------------------ -- DDL Statements for BUFFERPOOLS -- ------------------------------------ CREATE BUFFERPOOL "BP_MyDBName_4K" SIZE 10000 PAGESIZE 4096 NOT EXTENDED STORAGE; CONNECT RESET; CONNECT TO MyDBName; ------------------------------------ -- DDL Statements for TABLESPACES -- ------------------------------------ CREATE REGULAR TABLESPACE TS_MyDBName IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY SYSTEM USING ('C:\DBF\ts_MyDBName_m4') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL BP_MyDBName_4K OVERHEAD 24.100000 TRANSFERRATE 0.900000 DROPPED TABLE RECOVERY ON; -- Mimic tablespace ALTER TABLESPACE SYSCATSPACE PREFETCHSIZE 16 OVERHEAD 24.100000 TRANSFERRATE 0.900000; ALTER TABLESPACE TEMPSPACE1 PREFETCHSIZE 16 OVERHEAD 24.100000 TRANSFERRATE 0.900000; ------------------------------------------------ -- DDL Statements for table "INLAND_M000"."MyDBName_1" ------------------------------------------------ CREATE TABLE "INLAND_M000"."MyDBName_1" ( "PERMANENTID" INTEGER NOT NULL , "ID" INTEGER NOT NULL , "F24" INTEGER NOT NULL , "F32" INTEGER NOT NULL , "F39" INTEGER , "F36" SMALLINT , "F35" SMALLINT , "F1" VARCHAR(27) NOT NULL , "F26" VARCHAR(60) NOT NULL , "F27" VARCHAR(60) NOT NULL , "F28" VARCHAR(60) NOT NULL , "F29" VARCHAR(135) NOT NULL , "F30" VARCHAR(135) NOT NULL , "F31" VARCHAR(135) NOT NULL , "F20" VARCHAR(39) NOT NULL , "F34" VARCHAR(30) NOT NULL , "F21" VARCHAR(30) NOT NULL , "F22" VARCHAR(75) NOT NULL , "F37" VARCHAR(60) NOT NULL , "F38" VARCHAR(3) NOT NULL , "F23" VARCHAR(75) NOT NULL ) IN "TS_MyDBName" ; ALTER TABLE "INLAND_M000"."MyDBName_1" VOLATILE CARDINALITY; -- DDL Statements for indexes on Table "INLAND_M000"."MyDBName_1" CREATE UNIQUE INDEX "INLAND_M000"."C1_ID" ON "INLAND_M000"."MyDBName_1" ("ID" ASC); -- DDL Statements for indexes on Table "INLAND_M000"."MyDBName_1" CREATE INDEX "INLAND_M000"."I1_F24" ON "INLAND_M000"."MyDBName_1" ("F24" ASC); -- DDL Statements for indexes on Table "INLAND_M000"."MyDBName_1" CREATE INDEX "INLAND_M000"."I1_F32" ON "INLAND_M000"."MyDBName_1" ("F32" ASC); -- DDL Statements for indexes on Table "INLAND_M000"."MyDBName_1" CREATE UNIQUE INDEX "INLAND_M000"."I1_PERMID" ON "INLAND_M000"."MyDBName_1" ("PERMANENTID" ASC); COMMIT WORK; CONNECT RESET; TERMINATE; -- Generate statistics for all creators -- The db2look utility will consider only the specified tables -- Creating DDL for table(s) @ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 13:09 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Напиши-те ка вот так: CREATE UNIQUE INDEX "INLAND_M000"."C1_ID" ON "INLAND_M000"."MyDBName_1" ("ID" ASC) ALLOW REVERSE SCANS; И покажите план запроса для (SELECT MAX(Id) FROM DestTable); до и после изменения индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 13:14 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenmanНапиши-те ка вот так: CREATE UNIQUE INDEX "INLAND_M000"."C1_ID" ON "INLAND_M000"."MyDBName_1" ("ID" ASC) ALLOW REVERSE SCANS; И покажите план запроса для (SELECT MAX(Id) FROM DestTable); до и после изменения индекса. ----------------- Что такое план запроса? Можно на англицком, пжл-ста. Можно попробовать с курсором, но не проходит такой батч: BEGIN ATOMIC declare startRow integer default 0; declare endRow integer default 0; declare step integer default 0; declare lastStep integer default 0; declare currStep integer default 0; set startRow = (SELECT MAX(Id) FROM My_Scheme.MyTable_1); set endRow=5701000; set lastStep = (endRow-startRow)/1000; WHILE currStep < lastStep DO DECLARE myCurs CURSOR FOR SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM My_Scheme.MyTable_1_1K; LOAD FROM myCurs OF cursor INSERT INTO My_Scheme.MyTable_1; SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; END @ commit @ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 13:28 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
nkulikovА почему ты не хочешь воспользоваться LOAD from cursor. -------------- Я очень хочу, но следующий код не проходит BEGIN ATOMIC declare startRow integer default 0; declare endRow integer default 0; declare step integer default 0; declare lastStep integer default 0; declare currStep integer default 0; set startRow = (SELECT MAX(Id) FROM My_Scheme.MyTable_1); set endRow=5701000; set lastStep = (endRow-startRow)/1000; WHILE currStep < lastStep DO DECLARE myCurs CURSOR FOR SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM My_Scheme.MyTable_1_1K; LOAD FROM myCurs OF cursor INSERT INTO My_Scheme.MyTable_1; SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; END @ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 13:56 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Когда процедура скомпилируется, то образуется связанный с ней пакет: Код: plaintext 1. 2. 3. 4. 5. 6.
Используя имя пакета можно глянуть каков пран запроса при помощи утилиты db2expln Я почти уверен что у вас там TBSCAN ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 14:13 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
А почему ты не хочешь воспользоваться рекуксивным расширением WITH. Легко можно сгенерировать случайные данные. Я приводил пример на 10000 человек. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 14:40 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Ничего страшного.. пусть делает одинаково для всех баз. Тут самый прикол как раз и заключается в использовании select MAX()... Хотя вместо этой фигни запросто можно было бы воспользоваться или SQUENCE или INDENTITY ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 14:47 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
nkulikovА почему ты не хочешь воспользоваться рекуксивным расширением WITH. Легко можно сгенерировать случайные данные. Я приводил пример на 10000 человек. -------------------- Да мне не нужно генерировать случайные данные,т.к. уже имеем таблицу с данными - 1000 записей. Не известно начальное значение Ид. Нужно размножить эти записи до 100 млн, чтобы Id не повторялся, т.е. если 1000 записеи уже имеются, то к мах Id прибавить 1000, чтобы получить след. Id ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 15:35 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenmanНичего страшного.. пусть делает одинаково для всех баз. Тут самый прикол как раз и заключается в использовании select MAX()... Хотя вместо этой фигни запросто можно было бы воспользоваться или SQUENCE или INDENTITY --------------------- Поясните про прикол поподробнее. В чем же прикол, если Batch, в котором Мах(Id) ищется только один раз, для размножения до 1 млн записей берет 1 час, то че там говорить о 100 млн BEGIN ATOMIC declare startRow integer default 0; declare endRow integer default 0; declare step integer default 0; declare lastStep integer default 0; declare currStep integer default 0; set startRow = (SELECT MAX(Id) FROM MyScheme.MyTable); set endRow=1000000; set lastStep = (endRow-startRow)/1000; WHILE currStep < lastStep DO INSERT INTO MyScheme.MyTable (PermanentId, Id, F24, F32, F39, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23) SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM MyScheme.MyTable_1K; SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; END @ commit @ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 15:40 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
ну вообще-то, учитывая что есть индекс и свежая (!) статистика, max() срабатывает мухоментально. если же у вас для него приходиться шуршать по дискам делая tablescan, то куда уж. примерно так я понял gardenman'a и что самое удивительное - согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 15:50 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
а после вставки первой (и последующих) порций данных, у вас уже не свежая статистика (даже если и была таковой в начале). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 15:52 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Какая процедура выполняется? P_MillionRecPopulation(in EndNumOfRows integer) Какую процедру она вызывает? P_PopulateBy1000() Сколько раз она вызывается? 100000 В какой процедуре сторит select max()? в P_PopulateBy1000() Сколько раз выполняется select max()? 100000 .... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 16:08 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Какая процедура выполняется? P_MillionRecPopulation(in EndNumOfRows integer) Какую процедру она вызывает? P_PopulateBy1000() Сколько раз она вызывается? 100000 В какой процедуре сторит select max()? в P_PopulateBy1000() Сколько раз выполняется select max()? 100000 .... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 16:15 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
gardenmanКакая процедура выполняется? P_MillionRecPopulation(in EndNumOfRows integer) Какую процедру она вызывает? P_PopulateBy1000() Сколько раз она вызывается? 100000 В какой процедуре сторит select max()? в P_PopulateBy1000() Сколько раз выполняется select max()? 100000 .... ------------------- Ну да, все правильно в случае с процедурами. А если без них обойтись только батчем, и с autocommit и без него для вставки 1 млн записей требуется 1 час. BEGIN ATOMIC declare startRow integer default 0; declare endRow integer default 0; declare step integer default 0; declare lastStep integer default 0; declare currStep integer default 0; set startRow = (SELECT MAX(Id) FROM MyScheme.MyTable); set endRow=1000000; set lastStep = (endRow-startRow)/1000; WHILE currStep < lastStep DO INSERT INTO MyScheme.MyTable (PermanentId, Id, F24, F32, F39, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23) SELECT Id+startRow, Id+startRow, F24, F32, Id+startRow, F36, F35, F1, F26, F27, F28, F29, F30, F31, F20, F34, F21, F22, F37, F38, F23 FROM MyScheme.MyTable_1K; SET currStep = currStep+1; SET startRow = startRow+1000; END WHILE; END @ commit @ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 16:23 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
>CREATE BUFFERPOOL "BP_MyDBName_4K" SIZE 10000 PAGESIZE 4096 NOT EXTENDED STORAGE; 4096*10000 = 40M... маловато для таблички в 100 млн записей ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2005, 17:03 |
|
Как стереть ЛОГ, если в нём нет надобности?
|
|||
---|---|---|---|
#18+
Вообще много чего можно сделать чтобы ускорить работу: 1) MANAGED BY SYSTEM - Лучше сделать MANAGED BY DATABASE, например у ORACLE и MSSQL вообще нет ничего подобного MANAGED BY SYSTEM 2) Я не знаю как вы создавали базу данных. Лог и контейнеры нужно разнести по дискам, если есть возможность. И, если есть возможность разнести по дискам собственно табличку и ее индексы. Т.е. в идеали у нас должно быть 4 диска - для таблицы, для индексов, для лога и и для системы 3) В DB2 имеются таблички FOR INSERT ONLY 4) когда создаете индексы и таблицу, то делать их нужно в разных табличных пространствах, и соответственно привязывать к разным буферпулам. 5) на табличку, в которой 1000 исходных записей создайте отдельное табличное пространство и, соответственно свой буферпул, чтобы она не вымывалась из кэша. 6) ну, и естественно в зависимости от размера памяти на вашем компьютере, примерно 75% отдайте под буферпулы DB2 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2005, 10:19 |
|
|
start [/forum/topic.php?fid=43&msg=33080381&tid=1605887]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 161ms |
0 / 0 |