Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: уменьшается место по рутом

Заметил, что уменьшается место по рутом. Посмотрел. Увидел вот что

z12koadt:/home/db2inst1/db2inst1/NODE0000/BB/T0000000 # ll
insgesamt 131204
-rw------- 1 db2inst1 db2iadm1 134217728 20. Mär 12:15 C0000000.CAT
-rw-rw-rw- 1 db2inst1 db2iadm1 0 27. Jan 2011 .SQLCRT.FLG
z12koadt:/home/db2inst1/db2inst1/NODE0000/BB/T0000000 #

Что это?

На машине бежит DB2 9.7.9

Есть ли в базе параметры, что бы все писалось не в рут а в другое место?

Спасибо
Ответ: CawaSPb,

Спасибо, буду пробовать
Вопрос: Свободное место в табличных пространствах

Добрый день!
Возник вопрос по проблеме с которой не приходилось сталкиваться(
Вопрос в следующем:из-за нехватки места на жестких дисках(новый только заказали и когда они будут хз) решили почистить немного базу от мусора,но первым делом,что было замечено это большое количество свободного места в датафайлах,т.е авторасширение у меня стоит на 100м,а вот в файлах может быть свободно по 23Гб, к примеру,то есть файл занимает физически на диске порядка 25Гб,а в нем данных на 2Гб,никаких больших удалений данных вроде как не производилось,как такое могло произойти и каков выход - импорт/экспорт данных из табличного пространства через удаление датафайлов,чтобы подвинуть данные в начало?
SQL> select sum(bytes)/1024/1024 from dba_data_files where file_id=11;
SUM(BYTES)/1024/1024
--------------------
               25500


with s as (select max(block_id) maxb,file_id from dba_extents group by file_id)
select sum(f.bytes)/1024/1024,f.file_id from dba_free_space f,dba_data_files dd
,s where f.block_id>s.maxb and 
f.file_id=s.file_id
and dd.file_id=f.file_id
and dd.file_id=11
group by f.file_id

SUM(F.BYTES)/1024/1024    FILE_ID
---------------------- ----------
              2349.375         11

with s as (select max(block_id) maxb,file_id from dba_extents group by file_id)
select sum(f.bytes)/1024/1024,f.file_id from dba_free_space f,dba_data_files dd
/*,s where f.block_id>s.maxb and 
f.file_id=s.file_id*/
where dd.file_id=f.file_id
and dd.file_id=11
group by f.file_id

SUM(F.BYTES)/1024/1024    FILE_ID
---------------------- ----------
             23251.875         11


Заранее спасибо
Ответ: Уменьшить размер файла
alter database datafile 'мой любимый файл' resize мой_любимый_размер_цифрамиM;


Файл не уменьшается так как содержит данные выше уменьшаемой отметки (pardonnez mon français)
Посмотреть че там за сегменты выше отметки можно так
with
segs as (
  select e.tablespace_name, e.segment_name, max(e.block_id + e.blocks - 1) last_block, sum(e.bytes) / 1048576 segment_size_mb
  from dba_extents e
  group by e.tablespace_name, e.segment_name
),
last_segs as (
  select t.tablespace_name, s.segment_name, s.last_block, s.last_block * t.block_size / 1048576 "Mb from begining", s.segment_size_mb,
           row_number() over (partition by t.tablespace_name order by s.last_block desc) num_of_last_segs
  from segs s
  join dba_tablespaces t
  on (s.tablespace_name = t.tablespace_name)
)
select *
from last_segs
where num_of_last_segs <= 3
order by tablespace_name, last_block desc
;
Вопрос: подсчет мест

Всем доброго воскресного утра!
Есть таблица с столбцом номеров мест:
номер места
1
2
3
33
5
6
4
8
55
3

Также известно общее количество мест(в данном случае 10).
Вопрос 1: узнать все ли имеющиеся места есть в наличии.
я так думаю по distinct их разложить, подсчитать количество строк и сравнить их с общим количеством мест , и если совпадают , то ок!?
Вопрос 2: А как выяснить каких именно мест не хватает?
Ответ:
madeok.ru
вопрос 3: Какие места лишние?
то есть в данном примере:
3 - встречается два раза и второе место с номером три лишнее
33,55 - вообще выходит за диапазон общего количества мест и они также будут лишними

  1  with t as (
  2  select 1 x from dual union all
  3  select 2 from dual union all
  4  select 3 from dual union all
  5  select 33 from dual union all
  6  select 5 from dual union all
  7  select 6 from dual union all
  8  select 4 from dual union all
  9  select 8 from dual union all
 10  select 55 from dual union all
 11  select 3 from dual )
 12  select x from t group by x
 13* having sum(decode(greatest(x,10),10,1,0))<>1
SQL> /

         X
----------
        55
        33
         3


.....
stax
Вопрос: Выборка FG с малым местом.

Коллеги, помогите с запросом, не программист, а админ, поэтому с запросом туго,
Есть данные по месту в файловым группам баз сервера из таблички вида:
dbname FG FGtype CommonFreeSpaceGb FileSizeMb maxSize UsePercent
BD1 FASTGROUP FG 3012 3727872 3727900 99
BD1 FASTGROUP FG 8719 4474336 0 -447433600
BD1 FASTGROUP1 FG1 3012 3727872 3727900 99
BD1 FASTGROUP1 FG1 8719 4474336 4574336 97
BD1 FASTGROUP2 FG2 3012 3727872 3727900 99
BD1 FASTGROUP2 FG2 5000 4474336 0 -447433600


Из этих данных нужно выбрать строки:
BD1 FASTGROUP1 FG1 3012 3727872 3727900 99
BD1 FASTGROUP1 FG1 8719 4474336 4574336 97


т.к в обоих файлах файловой группы прцоент использования места более 90% от ограниченного для файла.
если было бы так
BD1 FASTGROUP1 FG1 3012 3727872 3727900 99
BD1 FASTGROUP1 FG1 8719 2000000 574336 55

то в выборку не надо выбирать
и
BD1 FASTGROUP2 FG2 3012 3727872 3727900 99
BD1 FASTGROUP2 FG2 4500 4474336 0 -447433600

т.к место для второго файла на диске испольвано более 90%
если бы бы так
BD1 FASTGROUP2 FG2 3012 3727872 3727900 99
BD1 FASTGROUP2 FG2 6500 4474336 0 -447433600

то в выборку попадать не надо, тк. место на диске еще есть

отрицательное значение в последнем столбце, это я вычислил так процент занятого места в бд, т.к при отсутвие ограничения на место, я делаю просто деление на -1, чтобы деление на 0 не получалось, может можно по другому здесь сделать.
Пока писал, понял что при отсутсвие огранчиении размеров, надо считать место с учетом процент использование общего места на диске, поле CommonFreeSpaceGb
Ответ:
aleks2
Осподи, ну вычисляй ты 0% занято для групп без ограничения и будет тебе щастье.

не, неправильно, надо как я потом написал, % от свободного места, т.к все таки в данном случае maxsize файла это общее свободное место на диске, даже если для файла не установлен макс size.
вычислил примерно так
 select dbname,FG ,FGtype ,
   min((FileSize*100)/(case  when maxSize>0 then maxSize else   (CommonFreeSpace*1024)end)) UsePerc
 from [tmp_FreeSpaceInFileGroup] 
 where 

    FGType!='FX'
group by dbname ,FG ,FGtype
having min(((FileSize )*100)/case  when maxSize>0 then maxSize  else (CommonFreeSpace*1024) end) >90
Вопрос: Освободить лишнее место в ms sql 2008 r2

Есть база данных Base 1177185,13 МБ
в свойствах бд написано доступное место 213037,16 МБ

Что пробовал, сжать логи, сжать файлы, тоже пробовал, но место не освобождается.
Цель раньше свободное место было меньше 10 мб и при необходимости оно забирала из файловой системы место. Подскажите пожалуйста.
Ответ: Viliput,

Если у вас длина записи, к примеру 5000 байт, вы на страницу две не поместите. получите свободное место более 40% при любом раскладе. Так у Вас будет заполнена база полупустыми страницами.
Вопрос: Определить свободное место БД

Всем Добрый день.

Подскажите, пожалуйста, скрипт по выводу свободного места в текущей БД.
Ответ: Metall_Version, Спасибо Большое.
А как эти данные в таблицу записать?

Хочу рассылку по почте сделать при условии меньше 1 Гб свободного места.
Плюс необходимо вести историю свободного места, для прогнозирования ухудшения свободного места.

Добавлено через 21 час 1 минуту
Тема закрыта.
Посмотрел скрипт процедуры sp_spaceused и уже с неё вытянул нужные таблицы, которые она использует и необходимые мне данные:

Код T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
declare
    @dbsize bigint,
    @logsize bigint,
    @reservedpages  bigint
 
select
    @dbsize = sum(convert(bigint,case when status & 64 = 0 then size else 0 end)),
    @logsize = sum(convert(bigint,case when status & 64 <> 0 then size else 0 end))
from dbo.sysfiles
 
 
select
    @reservedpages = sum(a.total_pages)
from sys.partitions p
    join sys.allocation_units a
        on p.partition_id = a.container_id
left join sys.internal_tables it
        on p.object_id = it.object_id
 
 
select 
    db_name()       [database_name],
    ltrim(str((convert (dec (15,2),@dbsize) + convert (dec (15,2),@logsize)) 
            * 8192 / 1048576,15,2) + ' MB')     [database_size],
    ltrim(str((case when @dbsize >= @reservedpages then
            (convert (dec (15,2),@dbsize) - convert (dec (15,2),@reservedpages)) 
            * 8192 / 1048576 else 0 end),15,2) + ' MB') [unallocated space]
Вопрос: Поле место рождения

Здравствуйте.
Как хранить информацию о месте рождения? чтобы в последующем было легче для анализа, запроса по месту нас. пункта, области?
Ответ:
Naf

Давно стали писать в поле "место рождения" улицу и дом?


пардон не заметил что речь о месте рождения. Я что-то сосредоточился на своем- на хранении полного адреса )
Вопрос: Места в самолёте

Подскажите, как можно в бд организовать места самолёта.



Я пробовал таблицей Схема_мест, но это по сути бесполезно, когда дело доходит до выбора места или проверки занятости.

Ответ: На картинке вижу справочник мест. Но это не таблица фактов. Имхо должна быть таблица билетов, а там и места и самолёты и аэропорты, если надо, направления\рейсы и т.д. А уж отсюда вы и получите свои отчёты по занятостям и свободностям.
Вопрос: Наличие свободных мест на заданную дату

ДОброго времени суток!
Уважаемые форумчане, столкнулся с такой проблемой, необходимо показать общее количество свободных мест в общего на заданную дату (например зима 2017)как это провернуть.
Наработки во вложении
Ответ:
Сообщение от Aleks777
показать общее количество свободных мест в общего на заданную дату
Запрос в SQL-выражении
SQL
1
2
3
SELECT SUM(КоличествоМест)-
      (SELECT COUNT(*) FROM Проживание WHERE [Введите Дату] BETWEEN Заезд AND Выезд) AS [Свободных мест]
FROM Комнаты
Вопрос: Sql запрос на выдачу свободных мест в зале

Здравствуйте как сделать запрос который будет выводить все номера мест которые не заняты.
Исходные данные:
Таблица zaly:
id | name_zaly | kol_mest
1 | обычный | 15

Таблица tikets:
Id | seans | zaly | mesto
1 | 1 | 1 | 4
2 | 1 | 1 | 14
3 | 1 | 1 | 8
4 | 1 | 1 | 1

Нужно что бы sql запрос вернул:
mesto
2
3
5
6
7
9
10
11
12
13
15

Добавлено через 36 минут
Это вообще возможно ?

Добавлено через 8 часов 6 минут
Подскажите в какую сторону копать то ?
Ответ: завести в базу таблицу целых чисел. Джойнить ее на места (ограничивать количеством мест в зале)