<?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; sp_spaceused</title>
	<atom:link href="http://www.dbainfo.net/tag/sp_spaceused/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>执行过程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>SQL SERVER中查看表占用空间的另外一种方法</title>
		<link>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm</link>
		<comments>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm#comments</comments>
		<pubDate>Tue, 28 Sep 2010 09:22:39 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[sp_spaceused]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=335</guid>
		<description><![CDATA[前面有篇文章中，介绍利用游标和sp_spaceused来查看数据库内所有表占用的空间，并倒序排序。 统计SQL SERVER数据库内所有表占用空间并排序 &#160; 下面介绍另外一种方法：利用sp_MSforeachtable替代游标来实现上篇文章中的类似功能。 &#160; use ossdb go &#160;--------查看所有表空间使用情况 CREATE TABLE #T( &#160;name&#160; nvarchar(256), &#160;rows&#160; varchar(11), &#160;reserved varchar(18), &#160;data&#160; varchar(18), &#160;index_size varchar(18), &#160;unused&#160; varchar(18) ) EXEC sp_MSforeachtable &#34;INSERT #T EXEC sp_spaceused &#39;?&#39;&#34; SELECT&#160;&#160; * FROM #T ORDER BY Convert(int,SubString(data,1,Len(data)-3)) DESC drop table #T go &#160; 测试通过，将ossdb改成用户数据库名字即可。 本文链接地址：https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm； 本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载； 转载务必注明原始出处 : Sybase数据库技术，数据库恢复专家； 对《SQL SERVER中查看表占用空间的另外一种方法》有何疑问或见解，请在本文下方发表； 对网站还有其他问题或建议，请提交在留言板，谢谢！ [...]]]></description>
			<content:encoded><![CDATA[<p>前面有篇文章中，介绍利用游标和sp_spaceused来查看数据库内所有表占用的空间，并倒序排序。</p>
<h2><a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm"><span style="font-size: 14px;">统计SQL SERVER数据库内所有表占用空间并排序</span></a></h2>
<p>&nbsp;</p>
<p>下面介绍另外一种方法：利用sp_MSforeachtable替代游标来实现上篇文章中的类似功能。</p>
<p>&nbsp;</p>
<blockquote>
<p>use <span style="font-size: 14px;"><span style="color: rgb(255, 0, 0);">ossdb</span></span><br />
		go</p>
<p>		&nbsp;--------查看所有表空间使用情况<br />
		CREATE TABLE #T(<br />
		&nbsp;name&nbsp; nvarchar(256),<br />
		&nbsp;rows&nbsp; varchar(11),<br />
		&nbsp;reserved varchar(18),<br />
		&nbsp;data&nbsp; varchar(18),<br />
		&nbsp;index_size varchar(18),<br />
		&nbsp;unused&nbsp; varchar(18)<br />
		)</p>
<p>		EXEC sp_MSforeachtable &quot;INSERT #T EXEC sp_spaceused &#39;?&#39;&quot;</p>
<p>		SELECT&nbsp;&nbsp; * FROM #T ORDER BY Convert(int,SubString(data,1,Len(data)-3)) DESC</p>
<p>		drop table #T<br />
		go</p>
</blockquote>
<p>&nbsp;</p>
<p>测试通过，将ossdb改成用户数据库名字即可。</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-desc2.htm">https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.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-desc2.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-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-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-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-09-06 -- <a href="https://www.dbainfo.net/sql-server-linked-server-summary.htm" title="SQL Server的链接服务器技术小结[转]">SQL Server的链接服务器技术小结[转]</a> (0)</li><li>2010-08-29 -- <a href="https://www.dbainfo.net/access-sqlserver-from-oracle-by-transgate.htm" title="从oracle内访问sqlserver2005的数据时一个错误">从oracle内访问sqlserver2005的数据时一个错误</a> (0)</li><li>2010-08-23 -- <a href="https://www.dbainfo.net/direct-modify-sqlserver-data-page-by-dbcc-writepage.htm" title="利用dbcc writepage命令修改SQL SQLSERVER中的物理页面上的内容">利用dbcc writepage命令修改SQL SQLSERVER中的物理页面上的内容</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASE15.0中利用代理表实现统计用户表存储空间大小的功能</title>
		<link>https://www.dbainfo.net/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm</link>
		<comments>https://www.dbainfo.net/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm#comments</comments>
		<pubDate>Tue, 17 Aug 2010 08:51:58 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[sp_spaceused]]></category>
		<category><![CDATA[代理表]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=805</guid>
		<description><![CDATA[在ASE中统计某个用户表的信息，比如：表中的行数、分配的空间、数据所占空间、索引所占空间以及剩余空间等，我们可以使用系统存储过程sp_spaceused来实现。 系统存储过程sp_spaceused有两个参数：@objname和@list_indices，第一个@objname是待统计的对象名，一般 是表名；第二个@list_indices标志是否单独统计索引信息，@list_indices=1表示单独统计索引信 息，@list_indices=0则不单独统计。 示例： 1&#62; sp_spaceused sysobjects,0 2&#62; go &#160;name&#160;&#160;&#160;&#160;&#160;&#160; rowtotal reserved data&#160;&#160; index_size unused &#160;---------- -------- -------- ------ ---------- ------ &#160;sysobjects 1014&#160;&#160;&#160;&#160; 252 KB&#160;&#160; 132 KB 68 KB&#160;&#160;&#160;&#160;&#160; 52 KB (1 row affected) (return status = 0) 1&#62; sp_spaceused sysobjects,1 2&#62; go &#160;index_name&#160;&#160; size&#160; reserved unused &#160;------------ ----- -------- ------ &#160;ncsysobjects 48 KB [...]]]></description>
			<content:encoded><![CDATA[<p>在ASE中统计某个用户表的信息，比如：表中的行数、分配的空间、数据所占空间、索引所占空间以及剩余空间等，我们可以使用系统存储过程sp_spaceused来实现。</p>
<p>系统存储过程sp_spaceused有两个参数：@objname和@list_indices，第一个@objname是待统计的对象名，一般 是表名；第二个@list_indices标志是否单独统计索引信息，@list_indices=1表示单独统计索引信 息，@list_indices=0则不单独统计。</p>
<p>示例：</p>
<blockquote>
<p>1&gt; sp_spaceused sysobjects,0<br />
		2&gt; go<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowtotal reserved data&nbsp;&nbsp; index_size unused<br />
		&nbsp;---------- -------- -------- ------ ---------- ------<br />
		&nbsp;sysobjects 1014&nbsp;&nbsp;&nbsp;&nbsp; 252 KB&nbsp;&nbsp; 132 KB 68 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 52 KB<br />
		(1 row affected)<br />
		(return status = 0)<br />
		1&gt; sp_spaceused sysobjects,1<br />
		2&gt; go<br />
		&nbsp;index_name&nbsp;&nbsp; size&nbsp; reserved unused<br />
		&nbsp;------------ ----- -------- ------<br />
		&nbsp;ncsysobjects 48 KB 64 KB&nbsp;&nbsp;&nbsp; 16 KB<br />
		&nbsp;csysobjects&nbsp; 20 KB 32 KB&nbsp;&nbsp;&nbsp; 12 KB<br />
		(1 row affected)<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowtotal reserved data&nbsp;&nbsp; index_size unused<br />
		&nbsp;---------- -------- -------- ------ ---------- ------<br />
		&nbsp;sysobjects 1014&nbsp;&nbsp;&nbsp;&nbsp; 252 KB&nbsp;&nbsp; 132 KB 68 KB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 52 KB<br />
		(return status = 0)<br />
		1&gt;</p>
</blockquote>
<p>但是利用sp_spaceused还不能实现统计某个库里面哪张表的数据记录数最多，哪张表占用的空间最大，哪些表的行数为0，以及哪些表的索引所占空间大于100M等等的问题。</p>
<p>如何实现呢？</p>
<p><strong>方法一：改造sp_spaceused过程语法中的SQL语句。但是，sp_spaceused过程的源代码有560多行，看起来比较累，至少需要一个临时表存储中间临时数据。</strong></p>
<p><strong><br />
	</strong></p>
<p><strong>方法二：是本博客专门推荐使用的，利用ASE中的代理表来实现。下面是操作步骤：</strong></p>
<p>假设用户数据库名字为：<strong>andkylee<br />
	</strong></p>
<p>先执行：use andkylee</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; go<strong><br />
	</strong></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>步骤一：建立代理表tablespace2</strong> </span></p>
<p>create&nbsp; existing table tablespace2(name varchar(128) null,rowtotal char(15) ,reserved char(15),[data] char(15),index_size char(15),unused char(15),_objname varchar(128) null,_list_indices int null) external procedure at &quot;<strong>loopback</strong>.<strong>andkylee</strong>.dbo.sp_spaceused&quot;</p>
<p>代理表的列 有：name,rowtotal,reserved,data,index_size,unused,_objname,_list_indices，其 中name,rowtotal,reserved,data,index_size,unused这几列接收存储过程sp_spaceused返回的结果 数据。</p>
<p>注意name,rowtotal,reserved,data,index_size,unused的各列的数据类型要和sp_spaceused返回的列的类型一致。</p>
<p>_objname,_list_indices 是过程sp_spaceused的参数列。</p>
<p>需要再sysservers中加入一个指向自己的远程服务器loopback。</p>
<p>sp_addserver loopback,null,@@servername<br />
	go</p>
<p>如果@@servername为空，则写dsedit中显示服务器名。</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>步骤二：在代理表tablespace2上建立视图，统计库内所有用户表的存储空间</strong> </span></p>
<p>create view TableSize(name,rowtotal,reserved,data_KBytes,index_size,unused)<br />
	as<br />
	select name,cast(str_replace(rowtotal,&#39; KB&#39;,&#39;&#39;) as int),cast(str_replace(reserved,&#39; KB&#39;,&#39;&#39;) as int),cast(str_replace(data,&#39; KB&#39;,&#39;&#39;) as int),cast(str_replace(index_size,&#39; KB&#39;,&#39;&#39;) as int),cast(str_replace(unused,&#39; KB&#39;,&#39;&#39;) as int) from tablespace2 where _list_indices&nbsp; = 0<br />
	and _objname in <br />
	&nbsp;&nbsp;&nbsp;&nbsp; (<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select user_name(uid)+&quot;.&quot;+name from <strong>andkylee</strong>.dbo.sysobjects where <strong>type=&#39;U&#39;</strong> <br />
	&nbsp;&nbsp;&nbsp;&nbsp; )<br />
	go</p>
<p>说明：可以使用其它的条件来仅仅统计某些表，比如：只统计用户test所拥有的表的空间信息，那么改为： where type=&#39;U&#39; and uid=user_id(&quot;test&quot;)</p>
<p><span style="font-size: medium;"><strong><br />
	</strong> </span></p>
<p><span style="font-size: medium;"><strong>步骤三： 针对视图TableSize，根据要求写SQL语句</strong> </span></p>
<p>比如：统计记录数最多的10个表的表名、行数、分配空间，用如下的SQL：</p>
<p>select top 10 name,rowtotal,reserved&nbsp; from TableSize order by rowtotal desc</p>
<p>go</p>
<blockquote>
<p>1&gt; select top 10 name,rowtotal,reserved&nbsp; from TableSize order by rowtotal desc<br />
		2&gt; go<br />
		&nbsp;name<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rowtotal&nbsp;&nbsp;&nbsp; reserved<br />
		&nbsp;-------------------------------------------------------------------------------<br />
		-------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ----------- -----------<br />
		&nbsp;SOS_Y_Hs_Xell<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1044911&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 178308<br />
		&nbsp;test3<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1008576&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21940<br />
		&nbsp;test2<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1008576&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21992<br />
		&nbsp;SOS_Y_Wharehouse<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 380000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 31488<br />
		&nbsp;SOS_Y_Hs_Xell_copy_1<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 288097&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49596<br />
		&nbsp;FLOWREC1<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 285139&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40580<br />
		&nbsp;PartitionTestTable<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 262144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11368<br />
		&nbsp;lzftest<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 262144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7496<br />
		&nbsp;SOS_Y_Hs_Xell_Back<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 236000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40512<br />
		&nbsp;SOS_R_Wharehouse<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 38408<br />
		(10 rows affected)</p>
</blockquote>
<p>&nbsp;</p>
<p>根据自己的要求写针对TableSize的相应的SQL语句，上面的sql在此抛砖引玉。</p>
<p>
	<strong><span style="font-size: medium;">备注：</span> </strong></p>
<p><span style="font-size: 12px;">1、由于每次统计过程中都要涉及到待统计表的存储空间大小的计算，所以，上面介绍的方法对系统性能会有一点小的影响。只要不是频繁的执行，个人感觉影响可以忽略。 </span></p>
<p><span style="font-size: 12px;">2、另外针对数据库日志也就是系统表syslogs的统计结果和其它表的不一样。 </span></p>
<blockquote>
<p><span style="font-size: 12px;">1&gt; sp_spaceused syslogs<br />
		2&gt; go<br />
		&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total_pages&nbsp;&nbsp;&nbsp;&nbsp; free_pages&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used_pages<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reserved_pages<br />
		&nbsp;--------------- --------------- --------------- ---------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------<br />
		&nbsp;syslogs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 102400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 101945&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 455<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
		(1 row affected)<br />
		(return status = 0)<br />
		1&gt;<br />
		</span></p>
</blockquote>
<p><span style="font-size: 12px;"><span>所以，不要在上面的被统计表中包含syslogs表。</span></span></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;- 关键字：ASE sp_spaceused 代理表 存储过程 统计表的空间大小 行数最多的表的记录数</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所占空间最大的表<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/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm">https://www.dbainfo.net/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm">ASE15.0中利用代理表实现统计用户表存储空间大小的功能</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>2014-06-09 -- <a href="https://www.dbainfo.net/count_all_tables_rowcount.htm" title="统计用户数据库内所有表的行数">统计用户数据库内所有表的行数</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-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-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/sybase-ase15-compute-table-space-by-proxy-procedure-proxy_table.htm/feed</wfw:commentRss>
		<slash:comments>1</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>
