<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sybase数据库技术，数据库恢复专家 &#187; 空间</title>
	<atom:link href="http://www.dbainfo.net/tag/%e7%a9%ba%e9%97%b4/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dbainfo.net</link>
	<description>提供Sybase ASE及Sybase SQL Anywhere数据库修复服务，电话：13811580958(微信)，QQ：289965371！We have many years of experience in recovering data from damanged Sybase devices. Contact us by Phone: +86 13811580958 Wechat: 13811580958 Email: 289965371@qq.com</description>
	<lastBuildDate>Sat, 14 Jun 2025 16:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>统计ASE数据库空间剩余率</title>
		<link>https://www.dbainfo.net/ase-segment-spaceusage.htm</link>
		<comments>https://www.dbainfo.net/ase-segment-spaceusage.htm#comments</comments>
		<pubDate>Fri, 19 Oct 2012 15:18:20 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[sp_spaceused]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=1945</guid>
		<description><![CDATA[统计Sybase ASE数据库的数据段和日志段的剩余空间以及剩余率。以下SQL在ASE12.5.1及以上版本通过测试。 &#160; select convert(char(16),db_name(data_segment.dbid)) DBName ,str(round(total_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &#34;Total Data(MB)&#34; ,str(round(free_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &#34;Free Data(MB)&#34; ,str(round(total_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &#34;Total Log(MB)&#34; ,str(round(free_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &#34;Free Log(MB)&#34; ,str( round(100.0 * free_data_pages / total_data_pages ,2),10,2) &#34;Free_Data%&#34; ,str( round(100.0 * free_log_pages / [...]]]></description>
			<content:encoded><![CDATA[<p>统计Sybase ASE数据库的数据段和日志段的剩余空间以及剩余率。以下SQL在ASE12.5.1及以上版本通过测试。</p>
<p>&nbsp;</p>
<blockquote>
<p>select convert(char(16),db_name(data_segment.dbid)) DBName<br />
		,str(round(total_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &quot;Total Data(MB)&quot;<br />
		,str(round(free_data_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &quot;Free Data(MB)&quot;<br />
		,str(round(total_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &quot;Total Log(MB)&quot;<br />
		,str(round(free_log_pages / ((1024.0 * 1024) / @@maxpagesize),2),10,2) &quot;Free Log(MB)&quot;<br />
		,str( round(100.0 * free_data_pages / total_data_pages ,2),10,2) &quot;Free_Data%&quot;<br />
		,str( round(100.0 * free_log_pages / total_log_pages,2),10,2) &quot;Free_Log%&quot;<br />
		from<br />
		(select dbid,sum(size) total_log_pages,lct_admin(&quot;logsegment_freepages&quot;, dbid ) free_log_pages<br />
		&nbsp; from master.dbo.sysusages<br />
		&nbsp;&nbsp;&nbsp; where segmap &amp; 4 = 4 <br />
		&nbsp;&nbsp;&nbsp; group by dbid<br />
		) log_segment<br />
		,<br />
		(select dbid,sum(size) total_data_pages ,sum(curunreservedpgs(dbid, lstart, unreservedpgs)) free_data_pages<br />
		&nbsp; from master.dbo.sysusages<br />
		&nbsp;&nbsp;&nbsp; where segmap &lt;&gt; 4<br />
		&nbsp;&nbsp;&nbsp; group by dbid <br />
		) data_segment<br />
		where data_segment.dbid = log_segment.dbid <br />
		&nbsp; --and data_segment.dbid &gt; 3 and data_segment.dbid &lt; 31513<br />
		order by data_segment.dbid<br />
		go</p>
<p>&nbsp;</p>
</blockquote>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/ase-segment-spaceusage.htm">https://www.dbainfo.net/ase-segment-spaceusage.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/ase-segment-spaceusage.htm">统计ASE数据库空间剩余率</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2011-03-21 -- <a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm" title="执行过程sp_spaceused的时候报error:1151">执行过程sp_spaceused的时候报error:1151</a> (0)</li><li>2010-05-18 -- <a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm" title="得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间">得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</a> (1)</li><li>2019-04-12 -- <a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm" title="Sybase ASE及SQL Anywhere数据库修复专家">Sybase ASE及SQL Anywhere数据库修复专家</a> (0)</li><li>2015-01-16 -- <a href="https://www.dbainfo.net/one-way-to-recover-master-configuration-area.htm" title="master数据库配置区域(configuration area)损坏的一种修复方法">master数据库配置区域(configuration area)损坏的一种修复方法</a> (1)</li><li>2014-10-10 -- <a href="https://www.dbainfo.net/ase-object-name-length-limit.htm" title="ASE对象名称长度限制">ASE对象名称长度限制</a> (0)</li><li>2014-06-09 -- <a href="https://www.dbainfo.net/count_all_tables_rowcount.htm" title="统计用户数据库内所有表的行数">统计用户数据库内所有表的行数</a> (0)</li><li>2013-11-19 -- <a href="https://www.dbainfo.net/showplan_html_format.htm" title="以HTML格式显示ASE查询计划">以HTML格式显示ASE查询计划</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation5.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作">Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作</a> (1)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation4.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务">Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation3.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3">Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/ase-segment-spaceusage.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程</title>
		<link>https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm</link>
		<comments>https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm#comments</comments>
		<pubDate>Thu, 25 Aug 2011 08:19:06 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[sp_helpdevice2]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=943</guid>
		<description><![CDATA[在ASE15.x之前的所有版本中（包括ASE12.5.4），存储过程sp_helpdevcie无法显示设备的剩余空间以及设备上各个数据库的具体分配情况。 比如：在ASE12.5中，执行sp_helpdevice master的结果为： 1&#62; sp_helpdevice master 2&#62; go &#160;device_name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; physical_name &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; description &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; status cntrltype device_number &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; low &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; high ---------------------------------------------------------------------------------------------------------------- &#160;master&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; e:\sybase125\data\master.dat &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; special, dsync on, default disk, physical disk, 100.00 MB &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 51199 (1 row affected) (return status = 0) 上面输出结果中加粗标记出来的100.00MB表示master设备的总大小。至于master设备还剩余多少空间？master设备都分配给哪些数据库使用了？ASE15.x之前版本的存储过程sp_helpdevice不能给出答案。 在ASE15.0之后版本的系统存储过程sp_helpdevice增加了上述功能。比如：ASE15.0.3中执行sp_helpdevice master的结果如下： 1&#62; sp_helpdevice master 2&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>在ASE15.x之前的所有版本中（包括ASE12.5.4），存储过程sp_helpdevcie无法显示设备的剩余空间以及设备上各个数据库的具体分配情况。</p>
<p>比如：在ASE12.5中，执行sp_helpdevice master的结果为：</p>
<blockquote>
<p>1&gt; sp_helpdevice master<br />
		2&gt; go<br />
		&nbsp;device_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; physical_name<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status cntrltype device_number<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; low<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; high<br />
		----------------------------------------------------------------------------------------------------------------<br />
		&nbsp;master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e:\sybase125\data\master.dat<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; special, dsync on, default disk, physical disk, <strong>100.00 MB</strong><br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51199</p>
<p>		(1 row affected)<br />
		(return status = 0)</p>
</blockquote>
<p>上面输出结果中加粗标记出来的100.00MB表示master设备的总大小。至于master设备还剩余多少空间？master设备都分配给哪些数据库使用了？ASE15.x之前版本的存储过程sp_helpdevice不能给出答案。<span id="more-943"></span></p>
<p>在ASE15.0之后版本的系统存储过程sp_helpdevice增加了上述功能。比如：ASE15.0.3中执行sp_helpdevice master的结果如下：</p>
<blockquote>
<p>1&gt; sp_helpdevice master<br />
		2&gt; go<br />
		&nbsp;device_name physical_name<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status cntrltype vdevno vpn_low vpn_high<br />
		-------------------------------------------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------ --------- ------ ------- --------<br />
		&nbsp;master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:\sybase\data\master.dat<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file system device, special, MIRROR ENABLED, mirror = &#39;D:\sybase\data\master_mirr.dat&#39;, serial writes, dsync on, directio off, reads mirrored,<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default disk, physical disk, <strong>80.00 MB, Free: 42.00 MB</strong><br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 739&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 40959</p>
<p>		(1 row affected)<br />
		&nbsp;<strong>dbname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allocated&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vstart lstart<br />
		&nbsp;----------- ------------- ------------------- ------ ------<br />
		&nbsp;master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26.00 MB Dec&nbsp; 2 2009&nbsp; 6:58PM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		&nbsp;model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.00 MB Dec&nbsp; 2 2009&nbsp; 6:58PM&nbsp; 13316&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		&nbsp;sybsystemdb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.00 MB Dec&nbsp; 2 2009&nbsp; 6:58PM&nbsp; 19460&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</strong></p>
<p>		(1 row affected)<br />
		(return status = 0)</p>
</blockquote>
<p>上面的结果包含master设备的剩余空间：42MB，以及master设备上分配了master，model，sybsystemdb三个系统库，以及相应的数据库大小、分配日期等等。</p>
<p>那么，如何在ASE15.x之前的版本中查看设备的剩余空间以及设备上的数据库分配信息呢？</p>
<p>方法有两种：</p>
<p><span style="font-size:14px;"><strong>1.</strong></span>使用sybase central这个sybase ASE自带的客户端工具。个人感觉ASE15以来自带的Sybase Central功能比较丰富，更加易用了。</p>
<p>在ASE12.5自带的Sybase Central上查看各设备的剩余空间：</p>
<p style="text-align: center;"><img alt="ASE12.5 上使用sybase central查看数据库各设备的总空间、剩余空间信息" height="158" src="https://www.dbainfo.net/wp-content/uploads/2011/08/ase125_sp_helpdevice_result.jpg" width="621" /></p>
<p>在master设备上点右键，选择&ldquo;属性&rdquo;，切换到databases能够看到在master设备上各个数据库所分配的空间。</p>
<p style="text-align: center;"><img alt="查看master设备上所分配的所有数据库" height="493" src="https://www.dbainfo.net/wp-content/uploads/2011/08/master-device-db-allocation.jpg" width="393" /></p>
<p><strong><span style="font-size:14px;">2.</span></strong>自己编写一个存储过程，比如：sp_helpdevice2。</p>
<p>我参考了ASE12.5.4和ASE15.0.3中的sp_helpdevice的语法完成该过程sp_helpdevice2的编写。分别在ASE v11.0.1, ASE v11.5.1， ASE v11.9.2, ASE v12.5, v12.5.0.3, v12.5.4 平台上进行了测试。</p>
<p>/*<br />
	* 此存储过程sp_helpdevice2适用于 ASE v11.x, v12.x,不能用于ASE15.x。实际上ASE15.x中的sp_helpdevice包含设备剩余空间以及设备上所分配的数据库的功能！<br />
	* ASE v11.x版本中系统表 sysusages中没有crdate这个表示设备段分配时间的字段，考虑到支持ASEv11.x，为了简单处理，没有在Allocation information 中列出设备段的具体分配时间！<br />
	*/</p>
<blockquote>
<p>/*<br />
		* 此存储过程在ASE v11.0.1, ASE v11.5.1，ASE v11.9.2, ASE v12.5, v12.5.0.3, v12.5.4 平台测试通过！适用于 ASE v11.x, v12.x,不能用于ASE15。实际上ASE15.x中的sp_helpdevice完全能够实现该功能！<br />
		* ASE v11.x版本中系统表 sysusages中没有crdate这个表示设备段分配时间的字段，考虑到支持ASEv11.x为了简单处理，没有在Allocation information 中列出设备段的具体分配时间！<br />
		*/<br />
		use sybsystemprocs<br />
		go</p>
<p>		if exists(select 1 from dbo.sysobjects where type=&#39;P&#39; and name=&#39;sp_helpdevice2&#39;)<br />
		&nbsp; drop procedure sp_helpdevice2<br />
		go</p>
<p>		create procedure sp_helpdevice2<br />
		@devname varchar(30) = &quot;%&quot;<br />
		as</p>
<p>		declare @numpgsmb float<br />
		declare @numpgsmb2 float<br />
		declare @Major_Version int</p>
<p>		set nocount on <br />
		select @numpgsmb = (1048576. / @@pagesize)<br />
		select @numpgsmb2 = (1048576. / @@maxpagesize)<br />
		--select @version_as_num = @@version_as_integer<br />
		select @Major_Version= convert(int, right(substring(@@version,1,charindex(&#39;.&#39;,@@version)-1),2) )</p>
<p>		if @Major_Version &gt;= 15 or @Major_Version &lt; 11<br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;this procedure is available for ASE versions from v11.x to v12.5.x, not for ASE15.x!&quot;<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		/*&nbsp; See if the device exists.*/<br />
		if not exists (select *<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; from master.dbo.sysdevices<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where name like @devname)<br />
		begin<br />
		&nbsp;&nbsp;&nbsp; /* 17610, &quot;No such i/o device exists.&quot; */<br />
		&nbsp;&nbsp;&nbsp; raiserror 17610<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		/* total size of device */<br />
		select d.name,<br />
		&nbsp;&nbsp;&nbsp; totalsizeMB = (1. + (d.high - d.low)) / @numpgsmb <br />
		&nbsp; into #totalsize<br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name</p>
<p>		/* Calculate used size in MB */<br />
		select d.name, <br />
		&nbsp;&nbsp;&nbsp; usedsizeMB = isnull(sum(u.size) / @numpgsmb2,0)<br />
		&nbsp; into #usedsize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d, master.dbo.sysusages u <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where u.vstart &gt;= d.low and u.vstart &lt;= d.high&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name<br />
		union <br />
		select d.name, 0.<br />
		from master.dbo.sysdevices d <br />
		&nbsp; where not exists ( select 1 from master.dbo.sysusages u where u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname</p>
<p>		set nocount off<br />
		/* Calculate the free size of device */<br />
		select d.name ,TotalSize = str(#totalsize.totalsizeMB,10,2), UsedSize = str(#usedsize.usedsizeMB,10,2),FreeSize = str(#totalsize.totalsizeMB - #usedsize.usedsizeMB,10,2),phyname = convert(varchar(50),d.phyname) <br />
		&nbsp; from master.dbo.sysdevices d, #totalsize, #usedsize<br />
		&nbsp; where&nbsp;&nbsp;&nbsp; d.name = #totalsize.name<br />
		&nbsp;&nbsp;&nbsp; and #totalsize.name = #usedsize.name<br />
		&nbsp; order by low,high</p>
<p>
		if (select count(*) from master.dbo.sysdevices where name like @devname) = 1 <br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;&quot;<br />
		&nbsp;&nbsp;&nbsp; print &quot;========================== Allocate Information ==========================&quot;<br />
		&nbsp;&nbsp;&nbsp; /*if @Major_Version = 12<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; select dbname = db_name(dbid), &quot;size(MB)&quot;=str(size/@numpgsmb2,10,2), allocated = u.crdate, vstart, lstart <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; order by dbname,vstart<br />
		&nbsp;&nbsp;&nbsp; &nbsp;else if @Major_Version = 11 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;*/<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; select dbname = db_name(dbid), &quot;size(MB)&quot;=str(size/@numpgsmb2,10,2), vstart, lstart <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; order by dbname,vstart</p>
<p>		end</p>
<p>		drop table #totalsize<br />
		drop table #usedsize<br />
		go</p>
<p>		/* grant the execute privilege to public */<br />
		grant execute on sp_helpdevice2 to public<br />
		go</p>
<p>		&nbsp;</p>
</blockquote>
<p>存储过程sp_helpdevice2的语法在此下载：<a href="https://www.dbainfo.net/wp-content/uploads/file/sp_helpdevice2.sql" target="_blank"><span style="font-size:14px;"><strong>sp_helpdevice2</strong></span></a></p>
<p>使用存储过程sp_helpdevice2的输出结果见下图所示：</p>
<p style="text-align: center;"><img alt="存储过程sp_helpdevice2的执行效果" height="504" src="https://www.dbainfo.net/wp-content/uploads/2011/08/view-sp_helpdevice2-result.jpg" width="605" /></p>
<p>最后，存储过程sp_helpdevice2仅输出了一些基本信息，像设备的状态信息等还请结合自带的sp_helpdevice进行查看。</p>
<p>在chinaunix的sybase板块有讨论此博文主题的帖子：<a href="http://bbs.chinaunix.net/viewthread.php?tid=3586168&amp;extra=&amp;page=1" target="_blank"><span>怎么查看设备文件上还有多少空间没有被分配出去</span></a></p>
<p>有什么建议欢迎在博文后面留言！</p>
<p><span style="color:#f00;"><span style="font-size:16px;">--更新： 2021-09-08<br />
	</span></span></p>
<p><span style="color:#f00;"><span style="font-size:16px;">增加显示设备ID，数据库ID，设备内偏移页号。<br />
	</span></span></p>
<blockquote>
<p>use sybsystemprocs<br />
		go</p>
<p>		if exists(select 1 from dbo.sysobjects where type=&#39;P&#39; and name=&#39;sp_helpdevice2&#39;)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drop procedure sp_helpdevice2<br />
		go</p>
<p>		/*<br />
		* 此存储过程在ASE v11.0.1, ASE v11.5.1, ASE v11.9.2, ASE v12.0, ASE v12.5, v12.5.0.3, v12.5.2, v12.5.4 平台测试通过！适用于 ASE v11.x, v12.x,不能用于ASE15。实际上ASE15.x中的sp_helpdevice完全能够实现该功能！<br />
		* ASE v11.x及ASE v12.0版本中系统表 sysusages中没有crdate这个表示设备段分配时间的字段，考虑到支持ASE v11.x为了简单处理，没有在Database Allocation information 中列出设备段的具体分配时间！<br />
		* ASE v11.x及ASE v12.0只支持2K页面，没有全局变量@@maxpagesize，需要手工替换本存储过程源码中的@@maxpagesize为@@pagesize！<br />
		*/<br />
		create procedure sp_helpdevice2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @devname varchar(30) = &quot;%&quot;<br />
		as</p>
<p>		declare @numpgsmb float<br />
		declare @numpgsmb2 float<br />
		declare @Major_Version int<br />
		declare @Page2KMulti int</p>
<p>		set nocount on <br />
		--select @version_as_num = @@version_as_integer<br />
		select @Major_Version= convert(int, right(substring(@@version, 1, charindex(&#39;.&#39;, @@version) - 1), 2))<br />
		if @Major_Version &gt;= 15 or @Major_Version &lt; 11<br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;this procedure is available for ASE versions from v11.x to v12.5.x, not for ASE15.x!&quot;<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		select @numpgsmb = (1048576. / @@pagesize)<br />
		select @numpgsmb2 = (1048576. / @@maxpagesize)<br />
		select @Page2KMulti = @@maxpagesize / 2048</p>
<p>		/*&nbsp; See if the device exists.*/<br />
		if not exists (select *<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; from master.dbo.sysdevices<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where name like @devname)<br />
		begin<br />
		&nbsp;&nbsp;&nbsp; /* 17610, &quot;No such i/o device exists.&quot; */<br />
		&nbsp;&nbsp;&nbsp; raiserror 17610<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		/* total size of device */<br />
		select d.name,<br />
		&nbsp;&nbsp;&nbsp; totalsizeMB = (1. + (d.high - d.low)) / @numpgsmb <br />
		&nbsp; into #totalsize<br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name</p>
<p>		/* Calculate used size in MB */<br />
		select d.name, <br />
		&nbsp;&nbsp;&nbsp; usedsizeMB = isnull(sum(u.size) / @numpgsmb2,0)<br />
		&nbsp; into #usedsize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d, master.dbo.sysusages u <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where u.vstart &gt;= d.low and u.vstart &lt;= d.high&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name<br />
		union <br />
		select d.name, 0.<br />
		from master.dbo.sysdevices d <br />
		&nbsp; where not exists ( select 1 from master.dbo.sysusages u where u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname</p>
<p>		set nocount off<br />
		/* Calculate the free size of device */<br />
		select DevNo = d.low / power(2, 24), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DevName = d.name, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TotalSize = str(#totalsize.totalsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UsedSize = str(#usedsize.usedsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreeSize = str(#totalsize.totalsizeMB - #usedsize.usedsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhysName = convert(varchar(100), d.phyname) <br />
		&nbsp; from master.dbo.sysdevices d, #totalsize, #usedsize<br />
		&nbsp; where d.name = #totalsize.name<br />
		&nbsp;&nbsp;&nbsp; and #totalsize.name = #usedsize.name<br />
		&nbsp; order by low,high</p>
<p>
		if (select count(*) from master.dbo.sysdevices where name like @devname) = 1 <br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;&quot;<br />
		&nbsp;&nbsp;&nbsp; print &quot;========================== Database Allocation Information ==========================&quot;<br />
		&nbsp;&nbsp;&nbsp; /*if @Major_Version = 12<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; select dbname = db_name(dbid), &quot;size(MB)&quot;=str(size/@numpgsmb2,10,2), allocated = u.crdate, vstart, lstart <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; order by dbname,vstart<br />
		&nbsp;&nbsp;&nbsp; &nbsp;else if @Major_Version = 11 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;*/<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select u.dbid, dbname = db_name(u.dbid), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;size(MB)&quot;=str(u.size / @numpgsmb2, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u.vstart, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (u.vstart&nbsp; - d.low) / @Page2KMulti as offsetpage, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u.lstart <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; order by u.vstart<br />
		end</p>
<p>		drop table #totalsize<br />
		drop table #usedsize<br />
		go</p>
<p>		/* grant the execute privilege to public */<br />
		grant execute on sp_helpdevice2 to public<br />
		go<br />
		&nbsp;</p>
</blockquote>
<p>如果Sybase ASE 版本为v11.x及v12.0，只支持2K页面，没有全局变量@@maxpagesize，需要手工替换本存储过程源码中的@@maxpagesize为@@pagesize！</p>
<blockquote>
<p>use sybsystemprocs<br />
		go</p>
<p>		if exists(select 1 from dbo.sysobjects where type=&#39;P&#39; and name=&#39;sp_helpdevice2&#39;)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drop procedure sp_helpdevice2<br />
		go</p>
<p>		/*<br />
		* 此存储过程在ASE v11.0.1, ASE v11.5.1, ASE v11.9.2, ASE v12.0, ASE v12.5, v12.5.0.3, v12.5.2, v12.5.4 平台测试通过！适用于 ASE v11.x, v12.x,不能用于ASE15。实际上ASE15.x中的sp_helpdevice完全能够实现该功能！<br />
		* ASE v11.x及ASE v12.0版本中系统表 sysusages中没有crdate这个表示设备段分配时间的字段，考虑到支持ASE v11.x为了简单处理，没有在Database Allocation information 中列出设备段的具体分配时间！<br />
		* ASE v11.x及ASE v12.0只支持2K页面，没有全局变量@@maxpagesize，需要手工替换本存储过程源码中的@@maxpagesize为@@pagesize！<br />
		*/<br />
		create procedure sp_helpdevice2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @devname varchar(30) = &quot;%&quot;<br />
		as</p>
<p>		declare @numpgsmb float<br />
		declare @numpgsmb2 float<br />
		declare @Major_Version int<br />
		declare @Page2KMulti int</p>
<p>		set nocount on <br />
		--select @version_as_num = @@version_as_integer<br />
		select @Major_Version= convert(int, right(substring(@@version, 1, charindex(&#39;.&#39;, @@version) - 1), 2))<br />
		if @Major_Version &gt;= 15 or @Major_Version &lt; 11<br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;this procedure is available for ASE versions from v11.x to v12.5.x, not for ASE15.x!&quot;<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		select @numpgsmb = (1048576. / @@pagesize)<br />
		select @numpgsmb2 = (1048576. / <span style="color:#f00;">@@pagesize</span>)<br />
		select @Page2KMulti = <span style="color:#f00;">@@pagesize</span> / 2048</p>
<p>		/*&nbsp; See if the device exists.*/<br />
		if not exists (select *<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; from master.dbo.sysdevices<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where name like @devname)<br />
		begin<br />
		&nbsp;&nbsp;&nbsp; /* 17610, &quot;No such i/o device exists.&quot; */<br />
		&nbsp;&nbsp;&nbsp; raiserror 17610<br />
		&nbsp;&nbsp;&nbsp; return (1)<br />
		end</p>
<p>		/* total size of device */<br />
		select d.name,<br />
		&nbsp;&nbsp;&nbsp; totalsizeMB = (1. + (d.high - d.low)) / @numpgsmb <br />
		&nbsp; into #totalsize<br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name</p>
<p>		/* Calculate used size in MB */<br />
		select d.name, <br />
		&nbsp;&nbsp;&nbsp; usedsizeMB = isnull(sum(u.size) / @numpgsmb2,0)<br />
		&nbsp; into #usedsize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; from master.dbo.sysdevices d, master.dbo.sysusages u <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where u.vstart &gt;= d.low and u.vstart &lt;= d.high&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; group by d.name<br />
		union <br />
		select d.name, 0.<br />
		from master.dbo.sysdevices d <br />
		&nbsp; where not exists ( select 1 from master.dbo.sysusages u where u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.status &amp; 2 = 2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname</p>
<p>		set nocount off<br />
		/* Calculate the free size of device */<br />
		select DevNo = d.low / power(2, 24), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DevName = d.name, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TotalSize = str(#totalsize.totalsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UsedSize = str(#usedsize.usedsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreeSize = str(#totalsize.totalsizeMB - #usedsize.usedsizeMB, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhysName = convert(varchar(100), d.phyname) <br />
		&nbsp; from master.dbo.sysdevices d, #totalsize, #usedsize<br />
		&nbsp; where d.name = #totalsize.name<br />
		&nbsp;&nbsp;&nbsp; and #totalsize.name = #usedsize.name<br />
		&nbsp; order by low,high</p>
<p>
		if (select count(*) from master.dbo.sysdevices where name like @devname) = 1 <br />
		begin <br />
		&nbsp;&nbsp;&nbsp; print &quot;&quot;<br />
		&nbsp;&nbsp;&nbsp; print &quot;========================== Database Allocation Information ==========================&quot;<br />
		&nbsp;&nbsp;&nbsp; /*if @Major_Version = 12<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; select dbname = db_name(dbid), &quot;size(MB)&quot;=str(size/@numpgsmb2,10,2), allocated = u.crdate, vstart, lstart <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; order by dbname,vstart<br />
		&nbsp;&nbsp;&nbsp; &nbsp;else if @Major_Version = 11 <br />
		&nbsp;&nbsp;&nbsp; &nbsp;*/<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select u.dbid, dbname = db_name(u.dbid), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;size(MB)&quot;=str(u.size / @numpgsmb2, 10, 2), <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u.vstart, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (u.vstart&nbsp; - d.low) / @Page2KMulti as offsetpage, <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u.lstart <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from master.dbo.sysusages u, master.dbo.sysdevices d<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where d.status &amp; 2 = 2 <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and d.name like @devname<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and (u.vstart &gt;= d.low and u.vstart &lt;= d.high )<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; order by u.vstart<br />
		end</p>
<p>		drop table #totalsize<br />
		drop table #usedsize<br />
		go</p>
<p>		/* grant the execute privilege to public */<br />
		grant execute on sp_helpdevice2 to public<br />
		go<br />
		&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p>
<p>本文为andkylee个人原创，请在尊重作者劳动成果的前提下进行转载；</p>
<p>&mdash;- 转载务必注明原始出处 :<a href="../" target="_blank" title="http://www.dbainfo.net"> http://www.dbainfo.net</a></p>
<p>&mdash;- 关键字：&nbsp; ASE15之前版本 设备剩余空间 sp_helpdevice2</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm">https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm">ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-10-19 -- <a href="https://www.dbainfo.net/ase-segment-spaceusage.htm" title="统计ASE数据库空间剩余率">统计ASE数据库空间剩余率</a> (2)</li><li>2011-03-21 -- <a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm" title="执行过程sp_spaceused的时候报error:1151">执行过程sp_spaceused的时候报error:1151</a> (0)</li><li>2010-10-22 -- <a href="https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm" title="查看Oracle中表所有字段的字节总长度">查看Oracle中表所有字段的字节总长度</a> (0)</li><li>2010-09-15 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm" title="统计SQL SERVER数据库内所有表占用空间并排序">统计SQL SERVER数据库内所有表占用空间并排序</a> (0)</li><li>2010-05-18 -- <a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm" title="得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间">得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>执行过程sp_spaceused的时候报error:1151</title>
		<link>https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm</link>
		<comments>https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm#comments</comments>
		<pubDate>Mon, 21 Mar 2011 05:21:15 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[sp_spaceused]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=679</guid>
		<description><![CDATA[在公司测试环境上执行sp_spaceused时报error：1151的错误。虽然这不是一个严重的错误，记得好像以前也出现过一次，故记录一下。 1&#62; sp_spaceused 2&#62; go &#160;database_name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; database_size&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;---------------------------------------------------- &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ---------------------------------------------------- &#160;ultranms&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 600.0 MB&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (1 row affected) Msg 1151, Level 11, State 1: Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308: Object 460577698 passed to OAM builtin function no longer exists in database 5. Msg 1151, Level 11, State 1: Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308: [...]]]></description>
			<content:encoded><![CDATA[<p>在公司测试环境上执行sp_spaceused时报error：1151的错误。虽然这不是一个严重的错误，记得好像以前也出现过一次，故记录一下。</p>
<blockquote>
<p>1&gt; sp_spaceused <br />
		2&gt; go<br />
		&nbsp;database_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; database_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;----------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------------------------------------------- <br />
		&nbsp;ultranms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600.0 MB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>		(1 row affected)<br />
		<strong>Msg 1151, Level 11, State 1:<br />
		Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308:<br />
		Object 460577698 passed to OAM builtin function no longer exists in database 5.<br />
		Msg 1151, Level 11, State 1:<br />
		Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308:<br />
		Object 460577698 passed to OAM builtin function no longer exists in database 5.<br />
		Msg 1151, Level 11, State 1:<br />
		Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308:<br />
		Object 460577698 passed to OAM builtin function no longer exists in database 5.<br />
		Msg 1151, Level 11, State 1:<br />
		Server &#39;ASE&#39;, Procedure &#39;sp_spaceused&#39;, Line 308:<br />
		Object 460577698 passed to OAM builtin function no longer exists in database 5.</strong><br />
		&nbsp;reserved&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;-------------------------------- ----------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------------------------------- ---------------------------- <br />
		&nbsp;9020 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1396 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1064 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6560 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		(return status = 0)<br />
		&nbsp;</p>
</blockquote>
<p>出现错误1151的原因是：执行sp_spaceused统计数据库的空间使用情况的时候，其它会话正在执行删除表的操作。<span id="more-679"></span></p>
<p>忽略该错误提示1151即可。该错误1151不会影响其它会话的删除表的操作。</p>
<p>唯一的影响是：统计的数据库的空间使用情况不准确。重新执行一下sp_spaceused即可。</p>
<blockquote>
<p>1&gt; sp_spaceused <br />
		2&gt; go<br />
		&nbsp;database_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; database_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;----------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------------------------------------------- <br />
		&nbsp;ultranms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600.0 MB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>		(1 row affected)<br />
		&nbsp;reserved&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;-------------------------------- ------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------------------------------- ---------------------------- <br />
		&nbsp;3344 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 232 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 344 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2768 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		(return status = 0)</p>
</blockquote>
<p>
	第二次统计出来数据库占用了3344KB与第一次9020KB有差别。第二次是准确的。</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm">https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm">执行过程sp_spaceused的时候报error:1151</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-10-19 -- <a href="https://www.dbainfo.net/ase-segment-spaceusage.htm" title="统计ASE数据库空间剩余率">统计ASE数据库空间剩余率</a> (2)</li><li>2010-05-18 -- <a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm" title="得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间">得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</a> (1)</li><li>2019-04-12 -- <a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm" title="Sybase ASE及SQL Anywhere数据库修复专家">Sybase ASE及SQL Anywhere数据库修复专家</a> (0)</li><li>2015-01-16 -- <a href="https://www.dbainfo.net/one-way-to-recover-master-configuration-area.htm" title="master数据库配置区域(configuration area)损坏的一种修复方法">master数据库配置区域(configuration area)损坏的一种修复方法</a> (1)</li><li>2014-10-10 -- <a href="https://www.dbainfo.net/ase-object-name-length-limit.htm" title="ASE对象名称长度限制">ASE对象名称长度限制</a> (0)</li><li>2014-06-09 -- <a href="https://www.dbainfo.net/count_all_tables_rowcount.htm" title="统计用户数据库内所有表的行数">统计用户数据库内所有表的行数</a> (0)</li><li>2013-11-19 -- <a href="https://www.dbainfo.net/showplan_html_format.htm" title="以HTML格式显示ASE查询计划">以HTML格式显示ASE查询计划</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation5.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作">Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作</a> (1)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation4.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务">Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation3.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3">Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查看Oracle中表所有字段的字节总长度</title>
		<link>https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm</link>
		<comments>https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm#comments</comments>
		<pubDate>Fri, 22 Oct 2010 06:45:01 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=367</guid>
		<description><![CDATA[在上一篇文章中，查看表中列属性的SQL语句 查看Oracle中表的简要列属性信息。利用上面的SQL语句，可以改进出来统计表所占物理存储空间大小的语句。 在Oracle中number数字类型所占的空间，计算公式为： number(p,s) 占用的字节数为： floor( ( p + 1&#160; ) / 2 ) + 1 &#160; select object_name,sum(decode(data_type,&#39;NUMBER&#39;,floor((col_length+1)/2) + 1,col_length)) table_size from &#160; (select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length &#160;&#160;&#160; from &#160;&#160;&#160;&#160;&#160; (select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale &#160;&#160;&#160;&#160;&#160;&#160;&#160; from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where o.obj#=t.obj# &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; and o.name=c.table_name &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; and c.owner=u.name &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; and o.owner#=u.user# &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; and [...]]]></description>
			<content:encoded><![CDATA[<p>在上一篇文章中，<a href="../view-table-column-properties-ddl.htm" title="查看表中列属性的SQL语句">查看表中列属性的SQL语句</a></p>
<p>
	查看Oracle中表的简要列属性信息。利用上面的SQL语句，可以改进出来统计表所占物理存储空间大小的语句。</p>
<p>在Oracle中number数字类型所占的空间，计算公式为：</p>
<p>number(p,s) 占用的字节数为： floor( ( p + 1&nbsp; ) / 2 ) + 1</p>
<p>&nbsp;</p>
<blockquote>
<p>select object_name,sum(decode(data_type,&#39;NUMBER&#39;,floor((col_length+1)/2) + 1,col_length)) table_size<br />
		from <br />
		&nbsp; (select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length<br />
		&nbsp;&nbsp;&nbsp; from <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where o.obj#=t.obj#<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and o.name=c.table_name<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and c.owner=u.name<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and o.owner#=u.user#<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and u.name=&#39;SCOTT&#39;<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*and o.name=&#39;EMP&#39;*/<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) tab_cols <br />
		&nbsp;&nbsp; ) col_len<br />
		group by object_name;</p>
</blockquote>
<p>&nbsp;</p>
<p>
	上面的SQL语句统计用户scott的所有表占用的物理空间的字节数。</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-<br />
	&mdash;- 本文为andkylee个人原创，请在尊重作者劳动成果的前提下进行转载；<br />
	&mdash;- 转载务必注明原始出处 :<a href="../" target="_blank" title="http://www.dbainfo.net"> http://www.dbainfo.net</a><br />
	&mdash;- 关键字：oracle table storage 表字段 占用空间大小<br />
	&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm">https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm">查看Oracle中表所有字段的字节总长度</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-10-19 -- <a href="https://www.dbainfo.net/ase-segment-spaceusage.htm" title="统计ASE数据库空间剩余率">统计ASE数据库空间剩余率</a> (2)</li><li>2011-12-01 -- <a href="https://www.dbainfo.net/oracle11g-tns-12537-and-ora-609-troubleshooting.htm" title="oracle11g报TNS-12537和ORA-609问题的解决">oracle11g报TNS-12537和ORA-609问题的解决</a> (0)</li><li>2011-10-14 -- <a href="https://www.dbainfo.net/history-of-common-databases.htm" title="各数据库的发展历史">各数据库的发展历史</a> (0)</li><li>2011-08-25 -- <a href="https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm" title="ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程">ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程</a> (0)</li><li>2011-04-28 -- <a href="https://www.dbainfo.net/oracle-10g-installation-libstdc-all_no_orclihsodbc.htm" title="oracle10g安装过程中Error in invoking target ‘all_no_orcl ihsodbc’ of makefile问题的解决">oracle10g安装过程中Error in invoking target ‘all_no_orcl ihsodbc’ of makefile问题的解决</a> (0)</li><li>2011-03-21 -- <a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm" title="执行过程sp_spaceused的时候报error:1151">执行过程sp_spaceused的时候报error:1151</a> (0)</li><li>2010-12-23 -- <a href="https://www.dbainfo.net/import-datetime-date-to-oracle-from-sybase-ase.htm" title="从sybase向oracle导入时间类型的数据">从sybase向oracle导入时间类型的数据</a> (0)</li><li>2010-09-28 -- <a href="https://www.dbainfo.net/view-table-column-properties-ddl.htm" title="查看表中列属性的SQL语句">查看表中列属性的SQL语句</a> (0)</li><li>2010-09-17 -- <a href="https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm" title="java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL">java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL</a> (0)</li><li>2010-09-15 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm" title="统计SQL SERVER数据库内所有表占用空间并排序">统计SQL SERVER数据库内所有表占用空间并排序</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>统计SQL SERVER数据库内所有表占用空间并排序</title>
		<link>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm</link>
		<comments>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm#comments</comments>
		<pubDate>Wed, 15 Sep 2010 03:36:04 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[SQL SERVER]]></category>
		<category><![CDATA[sqlserver]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=291</guid>
		<description><![CDATA[以下存储过程能够统计sqlserver数据库内所有用户表所占用的空间，并按照占用空间大小倒序排列。 -------------------------------------------------------------------------------------------------------------------------------- CREATE PROCEDURE GetAllTableSizes AS DECLARE @TableName VARCHAR(100) DECLARE tableCursor CURSOR FORWARD_ONLY FOR select [name] from dbo.sysobjects &#160; where OBJECTPROPERTY(id, N&#39;IsUserTable&#39;) = 1 &#160; FOR READ ONLY &#160; CREATE TABLE #TempTable ( &#160; tableName varchar(100), &#160; numberofRows varchar(100), &#160; reservedSize varchar(50), &#160; dataSize varchar(50), &#160; indexSize varchar(50), &#160; unusedSize varchar(50) ) OPEN tableCursor WHILE [...]]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml><br />
 <o:OfficeDocumentSettings><br />
  <o:RelyOnVML/><br />
  <o:AllowPNG/><br />
 </o:OfficeDocumentSettings><br />
</xml><![endif]--><!--[if gte mso 9]><xml><br />
 <w:WordDocument><br />
  <w:View>Normal</w:View><br />
  <w:Zoom>0</w:Zoom><br />
  <w:TrackMoves/><br />
  <w:TrackFormatting/><br />
  <w:PunctuationKerning/><br />
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing><br />
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><br />
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><br />
  <w:ValidateAgainstSchemas/><br />
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><br />
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent><br />
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><br />
  <w:DoNotPromoteQF/><br />
  <w:LidThemeOther>EN-US</w:LidThemeOther><br />
  <w:LidThemeAsian>ZH-CN</w:LidThemeAsian><br />
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><br />
  <w:Compatibility><br />
   <w:SpaceForUL/><br />
   <w:BalanceSingleByteDoubleByteWidth/><br />
   <w:DoNotLeaveBackslashAlone/><br />
   <w:ULTrailSpace/><br />
   <w:DoNotExpandShiftReturn/><br />
   <w:AdjustLineHeightInTable/><br />
   <w:BreakWrappedTables/><br />
   <w:SnapToGridInCell/><br />
   <w:WrapTextWithPunct/><br />
   <w:UseAsianBreakRules/><br />
   <w:DontGrowAutofit/><br />
   <w:SplitPgBreakAndParaMark/><br />
   <w:DontVertAlignCellWithSp/><br />
   <w:DontBreakConstrainedForcedTables/><br />
   <w:DontVertAlignInTxbx/><br />
   <w:Word11KerningPairs/><br />
   <w:CachedColBalance/><br />
   <w:UseFELayout/><br />
  </w:Compatibility><br />
  <m:mathPr><br />
   <m:mathFont m:val="Cambria Math"/><br />
   <m:brkBin m:val="before"/><br />
   <m:brkBinSub m:val="&#45;-"/><br />
   <m:smallFrac m:val="off"/><br />
   <m:dispDef/><br />
   <m:lMargin m:val="0"/><br />
   <m:rMargin m:val="0"/><br />
   <m:defJc m:val="centerGroup"/><br />
   <m:wrapIndent m:val="1440"/><br />
   <m:intLim m:val="subSup"/><br />
   <m:naryLim m:val="undOvr"/><br />
  </m:mathPr></w:WordDocument><br />
</xml><![endif]--><!--[if gte mso 9]><xml><br />
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"<br />
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"<br />
  LatentStyleCount="267"><br />
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/><br />
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/><br />
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/><br />
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/><br />
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/><br />
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Title"/><br />
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/><br />
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/><br />
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/><br />
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/><br />
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Table Grid"/><br />
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/><br />
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 1"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/><br />
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/><br />
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/><br />
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/><br />
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 1"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 2"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 2"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 3"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 3"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 4"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 4"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 5"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 5"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/><br />
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/><br />
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light List Accent 6"/><br />
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/><br />
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/><br />
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Dark List Accent 6"/><br />
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/><br />
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/><br />
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"<br />
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/><br />
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/><br />
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/><br />
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/><br />
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/><br />
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"<br />
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/><br />
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/><br />
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/><br />
 </w:LatentStyles><br />
</xml><![endif]--><!--[if gte mso 10]></p>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.5pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-font-kerning:1.0pt;}
</style>
<p><![endif]--></p>
<p align="left" class="MsoNormal" style="text-align: left;">以下存储过程能够统计sqlserver数据库内所有用户表所占用的空间，并按照占用空间大小倒序排列。</p>
<p align="left" class="MsoNormal" style="text-align: left;">--------------------------------------------------------------------------------------------------------------------------------</p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">CREATE PROCEDURE GetAllTableSizes</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">AS</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">DECLARE @TableName VARCHAR(100)</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">DECLARE tableCursor CURSOR FORWARD_ONLY</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">FOR</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">select [name] from dbo.sysobjects</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; where OBJECTPROPERTY(id, N&#39;IsUserTable&#39;) = 1</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; FOR READ ONLY</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">CREATE TABLE #TempTable</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">(</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; tableName varchar(100),</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; numberofRows varchar(100),</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; reservedSize varchar(50),</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; dataSize varchar(50),</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; indexSize varchar(50),</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; unusedSize varchar(50)<span id="more-291"></span></span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">)</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">OPEN tableCursor</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">WHILE (1=1)</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">BEGIN</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; FETCH NEXT FROM tableCursor INTO @TableName</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; IF(@@FETCH_STATUS&lt;&gt;0) BREAK;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; INSERT #TempTable&nbsp; EXEC sp_spaceused @TableName</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">END</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">CLOSE tableCursor</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">DEALLOCATE tableCursor</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">UPDATE #TempTable</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">SET reservedSize = REPLACE(reservedSize, &#39; KB&#39;, &#39;&#39;)</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">SELECT tableName &#39;Table Name&#39;,</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; numberofRows &#39;Total Rows&#39;,</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; reservedSize &#39;Reserved KB&#39;,</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; dataSize &#39;Data Size&#39;,</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; indexSize &#39;Index Size&#39;,</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp; unusedSize &#39;Unused Size&#39;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">FROM #TempTable</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">ORDER BY CONVERT(bigint,reservedSize) DESC</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">&nbsp;</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">DROP TABLE #TempTable</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;"><span style="font-size: 14px;"><span lang="EN-US" style="font-family: 宋体; color: black;">go</span></span></p>
<p align="left" class="MsoNormal" style="text-align: left;">--------------------------------------------------------------------------------------------------------------------------------</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm">https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm">统计SQL SERVER数据库内所有表占用空间并排序</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010-05-18 -- <a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm" title="得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间">得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</a> (1)</li><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2012-10-19 -- <a href="https://www.dbainfo.net/ase-segment-spaceusage.htm" title="统计ASE数据库空间剩余率">统计ASE数据库空间剩余率</a> (2)</li><li>2011-08-25 -- <a href="https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm" title="ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程">ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程</a> (0)</li><li>2011-03-21 -- <a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm" title="执行过程sp_spaceused的时候报error:1151">执行过程sp_spaceused的时候报error:1151</a> (0)</li><li>2010-11-03 -- <a href="https://www.dbainfo.net/sql2005-direct-update-system-catalogs.htm" title="SQL2005 如何更新系统表">SQL2005 如何更新系统表</a> (2)</li><li>2010-10-22 -- <a href="https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm" title="查看Oracle中表所有字段的字节总长度">查看Oracle中表所有字段的字节总长度</a> (0)</li><li>2010-09-28 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm" title="SQL SERVER中查看表占用空间的另外一种方法">SQL SERVER中查看表占用空间的另外一种方法</a> (0)</li><li>2010-09-16 -- <a href="https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm" title="Java连接SQL Server数据库的一个简单例子">Java连接SQL Server数据库的一个简单例子</a> (0)</li><li>2010-09-06 -- <a href="https://www.dbainfo.net/sql-server-linked-server-summary.htm" title="SQL Server的链接服务器技术小结[转]">SQL Server的链接服务器技术小结[转]</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</title>
		<link>https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm</link>
		<comments>https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm#comments</comments>
		<pubDate>Tue, 18 May 2010 10:18:06 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[SQL SERVER]]></category>
		<category><![CDATA[sp_spaceused]]></category>
		<category><![CDATA[sqlserver]]></category>
		<category><![CDATA[xp_fixeddrives]]></category>
		<category><![CDATA[空间]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=721</guid>
		<description><![CDATA[在csdn论坛上看到有人问，如何获取指定数据库所在磁盘的磁盘剩余空间。 http://topic.csdn.net/u/20100518/16/70cae8d3-a9de-4e45-9f49-fe8b00d8ba74.html?seed=1945596721&#38;r=65529065#r_65529065 解决的思路是：通过sysfiles系统表找到数据库所属数据文件所在的物理路径，从数据文件的物理路径中提取所在磁盘盘符（第一个字母），最后用扩展存储过程xp_fixeddrives来获得磁盘驱动器的剩余空间(MB Bytes)。 SQL语句如下： declare @drivename char(1) select @drivename=left(filename,1) from sysfiles where fileid=&#160; 1 if not exists(select 1 from tempdb.dbo.sysobjects where name like &#39;#FreeSpace%&#39; and type=&#39;U&#39;) &#160; create table #FreeSpace( &#160;&#160;&#160; Drive char(1), &#160;&#160;&#160; MB_Free int &#160;&#160;&#160; ) else &#160;&#160;&#160;&#160;&#160; truncate table #FreeSpace &#160;&#160;&#160;&#160;&#160; insert into #FreeSpace exec xp_fixeddrives select MB_Free from #FreeSpace where [...]]]></description>
			<content:encoded><![CDATA[<p>在csdn论坛上看到有人问，如何获取指定数据库所在磁盘的磁盘剩余空间。</p>
<p><a href="http://topic.csdn.net/u/20100518/16/70cae8d3-a9de-4e45-9f49-fe8b00d8ba74.html?seed=1945596721&amp;r=65529065#r_65529065" target="_blank">http://topic.csdn.net/u/20100518/16/70cae8d3-a9de-4e45-9f49-fe8b00d8ba74.html?seed=1945596721&amp;r=65529065#r_65529065<br />
	</a></p>
<p>解决的思路是：通过sysfiles系统表找到数据库所属数据文件所在的物理路径，从数据文件的物理路径中提取所在磁盘盘符（第一个字母），最后用扩展存储过程xp_fixeddrives来获得磁盘驱动器的剩余空间(MB Bytes)。</p>
<p>SQL语句如下：</p>
<blockquote>
<p>declare @drivename char(1)<br />
		select @drivename=left(filename,1) from sysfiles where fileid=&nbsp; 1<br />
		if not exists(select 1 from tempdb.dbo.sysobjects where name like &#39;#FreeSpace%&#39; and type=&#39;U&#39;)<br />
		&nbsp; create table #FreeSpace(<br />
		&nbsp;&nbsp;&nbsp; Drive char(1),<br />
		&nbsp;&nbsp;&nbsp; MB_Free int<br />
		&nbsp;&nbsp;&nbsp; )<br />
		else<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncate table #FreeSpace<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		insert into #FreeSpace <br />
		exec xp_fixeddrives<br />
		select MB_Free from #FreeSpace where Drive = @drivename<br />
		go<br />
		&nbsp;</p>
</blockquote>
<p>我的测试环境是的结果如下：</p>
<blockquote>
<p>1&gt; declare @drivename char(1)<br />
		2&gt; select @drivename=left(filename,1) from sysfiles where fileid=&nbsp; 1<br />
		3&gt;<br />
		4&gt; if not exists(select 1 from tempdb.dbo.sysobjects where name like &#39;#FreeSpace<br />
		%&#39; and type=&#39;U&#39;)<br />
		5&gt;&nbsp;&nbsp; create table #FreeSpace(<br />
		6&gt;&nbsp;&nbsp;&nbsp;&nbsp; Drive char(1),<br />
		7&gt;&nbsp;&nbsp;&nbsp;&nbsp; MB_Free int<br />
		8&gt;&nbsp;&nbsp;&nbsp;&nbsp; )<br />
		9&gt; else<br />
		10&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; truncate table #FreeSpace<br />
		11&gt;<br />
		12&gt; insert into #FreeSpace<br />
		13&gt; exec xp_fixeddrives<br />
		14&gt;<br />
		15&gt; select MB_Free from #FreeSpace where Drive = @drivename<br />
		16&gt; go</p>
<p>		(3 行受影响)<br />
		MB_Free<br />
		-----------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18905</p>
<p>		(1 行受影响)<br />
		1&gt;<br />
		2&gt;<br />
		3&gt; select filename from sysfiles<br />
		4&gt; go<br />
		filename</p>
<p>		--------------------------------------------------------------------------------<br />
		--------------------------------------------------------------------------------<br />
		--------------------------------------------------------------------------------<br />
		--------------------<br />
		D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf</p>
<p>		D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf</p>
<p>		(2 行受影响)<br />
		1&gt; xp_fixeddrives<br />
		2&gt; go<br />
		drive MB 可用空间<br />
		----- -----------<br />
		C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26562<br />
		D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18905<br />
		E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22517</p>
<p>		(3 行受影响)</p>
</blockquote>
<p>上面的sql语句和csdn上帖子的发帖人要求的有点差距，</p>
<p>第一：指定数据库，这点很容易。直接select filename from &lt;your_db_name&gt;.dbo.sysfiles即可。</p>
<p>第二：某个数据库的数据文件可能跨越两个及以上不同的物理磁盘；所以@drivename变量有可能得到不唯一的值。可以考虑用游标来实现。</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-<br />
	&mdash;- 本文为andkylee个人原创，请在尊重作者劳动成果的前提下进行转载；<br />
	&mdash;- 转载务必注明原始出处 :<a href="../" target="_blank" title="http://www.dbainfo.net"> http://www.dbainfo.net</a><br />
	&mdash;- 关键字：sqlcmd sqlserver2005 sysfiles xp_fixeddrives 磁盘剩余空间<br />
	&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm">https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm">得到SQLSERVER 2005 数据库的当前数据库中的数据文件所在磁盘的剩余空间</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-10-19 -- <a href="https://www.dbainfo.net/ase-segment-spaceusage.htm" title="统计ASE数据库空间剩余率">统计ASE数据库空间剩余率</a> (2)</li><li>2011-03-21 -- <a href="https://www.dbainfo.net/sybase-ase-sp_spaceused-error-1151.htm" title="执行过程sp_spaceused的时候报error:1151">执行过程sp_spaceused的时候报error:1151</a> (0)</li><li>2010-09-28 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm" title="SQL SERVER中查看表占用空间的另外一种方法">SQL SERVER中查看表占用空间的另外一种方法</a> (0)</li><li>2010-09-15 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm" title="统计SQL SERVER数据库内所有表占用空间并排序">统计SQL SERVER数据库内所有表占用空间并排序</a> (0)</li><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2011-08-25 -- <a href="https://www.dbainfo.net/get-free-space-of-device-and-database-allocation-prior-to-ase12-5.htm" title="ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程">ASE15.x之前版本中查看设备剩余空间以及设备上数据库分配信息的存储过程</a> (0)</li><li>2010-11-03 -- <a href="https://www.dbainfo.net/sql2005-direct-update-system-catalogs.htm" title="SQL2005 如何更新系统表">SQL2005 如何更新系统表</a> (2)</li><li>2010-10-22 -- <a href="https://www.dbainfo.net/oracle-view-table-physical-storage-size.htm" title="查看Oracle中表所有字段的字节总长度">查看Oracle中表所有字段的字节总长度</a> (0)</li><li>2010-09-16 -- <a href="https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm" title="Java连接SQL Server数据库的一个简单例子">Java连接SQL Server数据库的一个简单例子</a> (0)</li><li>2010-09-06 -- <a href="https://www.dbainfo.net/sql-server-linked-server-summary.htm" title="SQL Server的链接服务器技术小结[转]">SQL Server的链接服务器技术小结[转]</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sqlserver2005-get-datafile-located-disk-freespace.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
