分类: MS-SqlServer预览模式: 普通 | 列表

收缩数据库的SQL脚本比较好用

 

一个72G的大库,针对许多大容量的表进行了清除,手动truncate talbe 表 之后,用所有任务->收缩数据库,会发现根本没有收缩多少,还有70多个G,

直接运行 dbcc shrinkdatabase(cmsdb) 发现还有20多个G,其它的表只有个位数记录,不应该有这么大呀.

下面在网上搜索了一下,以下三条sql脚本一起执行,哇,收缩的相当彻底,哈哈.

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7782

SQL2000 列出当前库中的所有用户表

–列出当前库中的所有用户表
select 表名=name
from sysobjects
where xtype='U' and status>=0

–列出当前库中的所有系统表
select 表名=name
from sysobjects
where xtype='S'

–列出当前库中的所有视图
select 表名=name
from sysobjects
where xtype='V'

–列出当前库中的所有用户视图
select 表名=name
from sysobjects
where xtype='V' and status>=0

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 15318

在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。

/*
1. exec sp_spaceused '表名'            (SQL统计数据,大量事务操作后可能不准)
2. exec sp_spaceused '表名', true       (更新表的空间大小,准确的表空大小,但可能会花些统计时间)
3. exec sp_spaceused                    (数据库大小查询)
4. exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准)
5. exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用户表空间表小,大数据库慎用)
*/


create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'
select * from #t
drop table #t
另外还有sp_MSforeachdb可以遍历所有数据库,使用方法详见SQL帮助。

字段名称有:

NAME,ROWS RESERED DATA,INDEX_SIZE UNUSED

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1591

sql 2005 不能通过ip地址远程访问 最常用的不能远程访问 是因为数据服务 本身就没有 启用 远程连接,解决方法为:
 

查看更多...

Tags: IP远程访问

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1766


原文地址:http://www.sqlservercentral.com/articles/Performance+Tuning/dynamicvsstatic2/623/
在前一篇文章:动态SQL与静态SQL的第一部分中,我简要地介绍了有关使用动态SQL涉及到的安全问题。在这篇文章我打算介绍一些方法,既使有静态SQL的解决方法,但是还存在诱使你使用动态SQL的情况。

许多人之所以选择使用动态SQL,其原因在于开发和部署不需要太多的考虑,代码少。换言之,相对于静态SQL来说,动态SQL不需要太多的维护。本文将就上述原因一一验证其正确性。

和先前介绍的文章一样,首先举一些动态SQL的代码片断,然后介绍使用静态SQL完成同样的功能的方法,以及静态SQL实在不能使用时,动态SQL才迫以使用的情况。

注意:示例采用Pubs数据库

案例1:搜索条件

第一种情况就是我见到过最多的、也是说明动态SQL为什么说它需要较少的考虑和实现代码的地方。这里使用Pubs数据库的authors表。我想实现的是根据传入一个参数变量来搜索满足条件的某一个author的信息。下面在查询分析器中要执行的代码:

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1760

动态SQL与静态SQL-安全(第一部分)

翻译:原文地址:http://www.sqlservercentral.com/articles/Security/dynamicsqlversusstaticsqlp1/617/
概述

    熟悉MS SQL Server的每一个人都应该意识到避免使用动态SQL的代价是较佳的。由于与静态SQL相比而言,动态SQL赋予了更多的权限。正因为你使用了动态SQL,所以会执行一些意想不到的代码。动态SQL通常需要较少的代码,与静态SQL相比,似乎不需要太多的维护。

    本文将对SQL Server是如何处理动态SQL和静态SQL的原理作一介绍,在本部分,主要讨论一些安全问题,在后续部分将讨论使用动态SQL和静态SQL的适用环境。

    在本系列,我计划要对以上不使用或使用动态SQL的原因通过一些范例来说明来避免。许多静态SQL需要的代码要比动态SQL多,这无疑给我们一种使用动态SQL的诱惑,不过请暂时忍耐一下,静态SQL的使用对于日后所产生的问题降低许多。

查看更多...

Tags: sql

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1821

查询执行

 真正理解查询计划和发现与计划有关的问题,需要对构成这些计划的查询运算符有深入的了解.总而言之,有许多运算符值得探讨.
扫描与查找
 扫描与查找操作均是SQL Server从表或索引中读取数据采用的迭代器,这些也是SQL Server支持的最基本的运算.几乎在每一个查询计划中都可以找到,因此理解它们的不同是很重要的,扫描是在整张表上进行处理,而索引是在整个页级上进行处理,而查找则返回特定谓词上一个或多个范围内的数据行.

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 12570
Create PROCEDURE [dbo].[usp_PagingLarge]
(  
    @TableNames        VARCHAR(200),            --表名,可以是多个表,但不能用别名  
    @PrimaryKey        VARCHAR(100),            --主键,可以为空,但@Order为空时该值不能为空  
    @Fields            VARCHAR(200) = '*',        --要取出的字段,可以是多个表的字段,可以为空,为空表示select *  

查看更多...

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3810

高效通用分页存储过程(支持多表关联)

改写了下通用存储过程分页,支持多表关联查询与排序.

/****************************************************
**获取分页数据的通用存储过程,支持多表关联查询  
**作者:蔡鸟非菜

查看更多...

Tags: 通用分页存储过程 多表关联 高效分页

分类:MS-SqlServer | 固定链接 | 评论: 3 | 引用: 0 | 查看次数: 5511

MSSQL Server 2000/2005-----如何构造Where子句

分类:MS-SqlServer | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2797