第二个灵魂 发表于 2015-1-16 22:38:53

MSSQL网站制作之怎样才干疾速晓得数据库中每一个表的巨细...

2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。数据|数据库sp_spaceused
显现行数、保存的磁盘空间和以后数据库中的表所利用的磁盘空间,或显现由全部数据库保存和利用的磁盘空间。

语法
sp_spaceused[[@objname=]objname]
[,[@updateusage=]updateusage]

参数
[@objname=]objname

是为其哀求空间利用信息(保存和已分派的空间)的表名。objname的数据范例是nvarchar(776),默许设置为NULL。

[@updateusage=]updateusage

暗示应在数据库内(未指定objname时)仍是在特定的工具上(指定objname时)运转DBCCUPDATEUSAGE。值能够是true或false。updateusage的数据范例是varchar(5),默许设置为FALSE。

前往代码值
0(乐成)或1(失利)

了局集
假如省略objname,则前往两个了局集。

列名数据范例形貌
database_namevarchar(18)以后数据库的称号。
database_sizevarchar(18)以后数据库的巨细。
unallocatedspacevarchar(18)数据库的未分派空间。

列名数据范例形貌
reservedvarchar(18)保存的空间总量。
Datavarchar(18)数据利用的空间总量。
index_sizevarchar(18)索引利用的空间。
Unusedvarchar(18)未用的空间量。


假如指定参数,则前往上面的了局集。

列名数据范例形貌
Namenvarchar(20)为其哀求空间利用信息的表名。
Rowschar(11)objname表中现有的行数。
reservedvarchar(18)为objname表保存的空间总量。
Datavarchar(18)objname表中的数据所利用的空间量。
index_sizevarchar(18)objname表中的索引所利用的空间量。
Unusedvarchar(18)objname表中未用的空间量。


正文
sp_spaceused盘算数据和索引利用的磁盘空间量和以后数据库中的表所利用的磁盘空间量。假如没有给定objname,sp_spaceused则呈报全部以后数据库所利用的空间。

当指定updateusage时,Microsoft?SQLServer?扫描数据库中的数据页,并就每一个表利用的存储空间对sysindexes表作出任何须要的改正。比方会呈现如许一些情形:当撤除索引后,表的sysindexes信息大概不是以后的。该历程在年夜表或数据库上大概要花一些工夫运转。只要当嫌疑所前往的值不准确,并且该历程对数据库中的别的用户或历程没有负面影响时,才应利用该历程。假如首选该历程,则能够独自运转DBCCUPDATEUSAGE。

权限
实行权限默许授与public脚色。

示例
A.有关表的空间信息
下例呈报为titles表分派(保存)的空间量、数据利用的空间量、索引利用的空间量和由数据库工具保存的未用空间量。

USEpubs
EXECsp_spaceusedtitles

B.有关全部数据库的已更新空间信息
下例归纳综合以后数据库利用的空间并利用可选参数@updateusage。

USEpubs
sp_spaceused@updateusage=TRUE
出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。

山那边是海 发表于 2015-1-19 20:26:41

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

admin 发表于 2015-1-19 20:26:41

在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。

灵魂腐蚀 发表于 2015-1-27 07:50:47

你可以简单地认为适合的就是好,不适合就是不好。

乐观 发表于 2015-2-5 04:32:32

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。

简单生活 发表于 2015-2-11 04:46:34

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?

小女巫 发表于 2015-3-1 21:38:37

无法深入到数据库系统层面去了解和探究

小魔女 发表于 2015-3-11 00:21:14

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

变相怪杰 发表于 2015-3-17 17:03:47

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

金色的骷髅 发表于 2015-3-24 12:50:59

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
页: [1]
查看完整版本: MSSQL网站制作之怎样才干疾速晓得数据库中每一个表的巨细...