ブロック番号確認

(8.0.22)

調べた限り方法なし

 

(19c)

drop table tab1 purge;
create table tab1(col1 int,col2 varchar2(2000));

declare
begin
for i in 1..1000 loop
  insert into tab1 values(i,rpad('X',2000,'X'));
  commit;
end loop;
end;
/


select col1,
dbms_rowid.rowid_to_absolute_fno(rowid, 'TEST', 'TAB1') file_id,
dbms_rowid.rowid_block_number(rowid) block_id
from tab1;

 


(14)
https://qiita.com/mkyz08/items/5a1c9d4bd5b8ba82f345


-- pg_filedumpのインストール

dnf -y install git make rpm-build lz4-devel
su - postgres
git clone https://github.com/df7cb/pg_filedump.git
cd pg_filedump
make

exit

cd ~postgres/pg_filedump
export PATH=$PATH:/usr/pgsql-14/bin
make install
su - postgres

export PATH=$PATH:/usr/pgsql-14/bin
pg_filedump --help

-- テストデータ作成
drop table tab1;
create table tab1(col1 int,col2 varchar(10)) with ( fillfactor = 10);
alter table tab1 add constraint tab1pk primary key(col1);
insert into tab1(col1,col2) select a,'X' from generate_series(1,50) a;

update tab1 set col2 = 'A' where col1 = 1;
update tab1 set col2 = 'B' where col1 = 2;
update tab1 set col2 = 'C' where col1 = 3;

checkpoint;


oid2name
oid2name -d test

pg_filedump -a /var/lib/pgsql/14/data/base/16384/16794
pg_filedump -D int,varchar /var/lib/pgsql/14/data/base/16384/16794
pg_filedump -i /var/lib/pgsql/14/data/base/16384/16794

oid2name -d test -i

pg_filedump -a /var/lib/pgsql/14/data/base/16384/16797
pg_filedump -a -i /var/lib/pgsql/14/data/base/16384/16797

 


(2019)
http://memorandom-nishi.hatenablog.jp/entry/2017/02/26/174358

drop table tab1;
create table tab1(col1 int not null primary key,col2 varchar(8000) );

declare @i int = 1;
set nocount on
while (@i <= 100)
begin
  insert into tab1 values(@i,replicate('X',4000));
  set @i = @i + 1;
end

select count(*) from tab1;


select * from dbo.tab1
cross apply sys.fn_PhysLocCracker(%%physloc%%) as fplc
order by 
  fplc.file_id,
  fplc.page_id,
  fplc.slot_id
;