Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9193

Re: how increase segment on live?

$
0
0

As I said, one method to monitor segment utilization is by using thresholds which are well documented in the manuals.

 

sp_helpdb also illustrates how one can use builtin functions and  the system tables such as sysusages, sysdevices, etc to determine how much space is being consumed and how much is free.

 

Here is a very untested piece of sql to list, both pages free by device fragment and segment, and then grouped and aggregated by segment - derived from the code in sp_helpdb:

 

select db_name(u.dbid) as "dbname",d.name,s.name,
case u.segmap
when 4 then str(lct_admin("logsegment_freepages", db_id('mydb'))
                                - lct_admin("reserved_for_rollbacks", db_id('mydb')),12)
       else str(curunreservedpgs(u.dbid, u.lstart, u.unreservedpgs),12)
end as "free_pgs"
from master..sysdevices d
inner join
     master..sysusages u
on d.vdevno = u.vdevno
inner join
     syssegments s
on u.segmap & power(2,s.segment) != 0
where u.dbid = db_id('mydb')
and   d.status & 2 = 2
order by u.dbid,u.lstart

select db_name(u.dbid) as "dbname",s.name,
case u.segmap
when 4 then str(lct_admin("logsegment_freepages", db_id('mydb'))
                                - lct_admin("reserved_for_rollbacks", db_id('mydb')),12)
       else str(sum(curunreservedpgs(u.dbid, u.lstart, u.unreservedpgs)),12)
end as "free_pgs"
from master..sysdevices d
inner join
     master..sysusages u
on d.vdevno = u.vdevno
inner join
     syssegments s
on u.segmap & power(2,s.segment) != 0
where u.dbid = db_id('mydb')
and   d.status & 2 = 2
group by db_name(u.dbid),s.name,u.segmap

go

 

dbname                         name                           name                           free_pgs
------------------------------ ------------------------------ ------------------------------ ------------
mydb                           user_dev_01                    system                                 2682
mydb                           user_dev_01                    default                                2682
mydb                           user_log_01                    logsegment                           209093
mydb                           user_dev_01                    system                                 4480
mydb                           user_dev_01                    default                                4480
mydb                           user_log_01                    logsegment                           209093
mydb                           user_dev_02                    system                               159548
mydb                           user_dev_02                    default                              159548
mydb                           user_dev_02                    system                               255000
mydb                           user_dev_02                    default                              255000
mydb                           user_dev_01                    system                               249112
mydb                           user_dev_01                    default                              249112
mydb                           user_dev_01                    system                               255000
mydb                           user_dev_01                    default                              255000

(14 rows affected)
dbname                         name                           free_pgs
------------------------------ ------------------------------ ------------
mydb                           default                              925822
mydb                           system                               925822
mydb                           logsegment                           209093

(3 rows affected)


Viewing all articles
Browse latest Browse all 9193

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>