随笔分类 -  mssql

摘要:今天看到了SQL2005中的一个选项“使用AWE分配内存”,于是跑去微软的网站查询了一番,将查询结果和一家一起分享吧!我们都知道标准的 32 位地址最多可支持 4 GB 内存。因此,32 位进程的标准地址空间限制为 4 GB。默认情况下,在 32 位 Microsoft Windows 操作系统中,将为操作系统保留 2 GB 空间,另外 2 GB 空间可由应用程序使用。地址窗口化扩展插件AWE 是 Windows 的内存管理功能的一组扩展,它使应用程序能够使用的内存量超过通过标准 32 位寻址可使用的 2-3 GB 内存。AWE 允许应用程序获取物理内存,然后将非分页内存的视图动态映射到 32 阅读全文
posted @ 2011-07-21 22:58 qanholas 阅读(2595) 评论(0) 推荐(0) 编辑
摘要:SQLServer提供了一个数据库命令――DBCC SHOWCONTIG――来确定一个指定的表或索引是否有碎片。 DBCC SHOWCONTIG数据库平台命令,用来显示指定的表的数据和索引的碎片信息。DBCC SHOWCONTIG 权限默认授予 sysadmin固定服务器角色或 db_owner 和 db_ddladmin固定数据库角色的成员以及表的所有者且不可转让。 语法(SQLServer2000)DBCC SHOWCONTIG [ ( { table_name | table_id| view_name | view_id } [ , index_name | index_id ] ) 阅读全文
posted @ 2011-07-21 21:38 qanholas 阅读(484) 评论(0) 推荐(0) 编辑
摘要:1,什么是视图?2,为什么要用视图;3,视图中的ORDER BY;4,刷新视图;5,更新视图;6,视图选项;7,索引视图;1.什么是视图 视图是由一个查询所定义的虚拟表,它与物理表不同的是,视图中的数据没有物理表现形式,除非你为其创建一个索引;如果查询一个没有索引的视图,Sql Server实际访问的是基础表。 如果你要创建一个视图,为其指定一个名称和查询即可。Sql Server只保存视图的元数据,用户描述这个对象,以及它所包含的列,安全,依赖等。当你查询视图时,无论是获取数据还是更新数据,Sql server都用视图的定义来访问基础表; 视图在我们日常操作也扮演着许多重要的角色,比如可以利 阅读全文
posted @ 2011-07-19 16:52 qanholas 阅读(1065) 评论(0) 推荐(0) 编辑
摘要:我们一般都认为TRUNCATE是一种不可回滚的操作,它会删除表中的所有数据以及重置Identity列。如果你在事务中进行TRUNCATE操作,就能回滚。反之,它就不会从日志文件文件恢复数据。它不会在日志文件中记录删除的那些数据,它只在日志中记录数据页的单元分配。下面的例子就能解释上面的所说的.USE temp_test_databaseGO--创建一个临时表CREATE TABLE TruncateTabel(ID INT)INSERT INTO TruncateTabel(ID)SELECT 1UNION ALLSELECT 2UNION ALLSELECT 3GO--检查插入的数据SELE 阅读全文
posted @ 2011-07-19 16:16 qanholas 阅读(616) 评论(0) 推荐(0) 编辑
摘要:我们在日常操作中,免不了对数据库的某张表,一次性的要插入多条记录,但是首先想到的就是复制,粘帖N多重复的INSERT INTO 语句,万一某一个少了一个分号,或多个逗号之类的,产生错误,要找起来可就费尽了,既浪费时间,又耽误工作。 除了上面所说的方法外,其实还有二中方法,相比较起来要比之前那个要简洁。 首先是之前那个方法:INSERT INTO MyTable(ID,NAME) VALUES(1,'123');INSERT INTO MyTable(ID,NAME) VALUES(2,'456');INSERT INTO MyTable(ID,NAME) VAL 阅读全文
posted @ 2011-07-19 16:08 qanholas 阅读(14659) 评论(0) 推荐(2) 编辑
摘要:摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1,EXEC的使用EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理。 阅读全文
posted @ 2011-07-19 16:05 qanholas 阅读(315) 评论(0) 推荐(0) 编辑
摘要:说到这个问题,基本上有人就会想到三个问题:1,什么是系统数据?2,为什么要移动系统数据库?3,移动系统数据库我们可以用附加和分离,为什么还要单独拿出来说呢?对于这三个问题我一个一个讲吧,也算是自己做个笔记。1,什么是系统数据?所谓系统数据库就是我们在装SQL Server之后,系统自带的数据库(这样的回答是不是很白痴^_^).如果你装SQL Server2005或2008在打开一个SQL实例后,就会看到一个数据库--->系统数据库文件夹,里边就是系统自带的数据库,如图: 对于每一个系统数据库,这里我先用简单的语言说一下: 1),master: 这个数据库是全局数据库,它包含一些系统表,权 阅读全文
posted @ 2011-07-19 15:49 qanholas 阅读(647) 评论(0) 推荐(1) 编辑
摘要:一个新的SQL Server 2005安装总是包括四个数据库:master、model、tempdb和msdb。它也包含第五个“隐藏的”数据库。我们无法使用可以列出所有数据库的一般SQL命令来看到它。这个数据库被称为resource数据库,它的实际名字是mssqlsystemresource。Resource 数据库是只读数据库,它包含了 SQL Server 2005 中的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持续存在于 Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。Resource数据库不包含用户数据或用户元数 阅读全文
posted @ 2011-07-19 14:15 qanholas 阅读(334) 评论(0) 推荐(0) 编辑
摘要:一组通话记录(总共500万条):ID 主叫号码 被叫号码 通话起始时间 通话结束时间 通话时长1 98290000 0215466546656 2007-02-01 09:49:53.000 2007-02-01 09:50:16.000 232 98290000 021546654666 2007-02-01 09:50:29.000 2007-02-01 09:50:41.000 123 98290000 021546654666 2007-02-01 09:50:58.000 2007-02-01 09:51:12.000 144 68290900 0755133329866 2007- 阅读全文
posted @ 2011-07-19 12:21 qanholas 阅读(1103) 评论(0) 推荐(0) 编辑
摘要:Windows -Processor指标名称指标描述指标范围指标单位CPU利用率(% Processor Time)% Processor Time指处理器执行非闲置线程时间的百分比。这个计数器设计成用来作为处理器活动的主要指示器。它通过在每个时间间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。可将其视为范例间隔用于做有用工作的百分比。根据应用系统情况,在80%±5%范围内波动为宜。过低,则服务器CPU利用率不高;过高,则CPU可能成为系统的处理瓶颈。%中断率(Interrupts/sec.)每秒钟设备中断处理器的次数。在完成一个任务或需要注意时,装置会发出中 阅读全文
posted @ 2011-07-15 20:25 qanholas 阅读(1866) 评论(1) 推荐(1) 编辑
摘要:内存计数器瓶颈备注Pages/sec20以上Page Faults/sec正常值<100此值过大表示太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法。page read/sec阈值为>5越低越好,大数值表示磁盘读而不是缓存读Available Mbytes4 MB 或更小小于4 MB 或更小,则说明计算机上总的内存可能不足,或某程序没有释放内存。Cache Bytes默认为50%的可用物理内存如IIS5.0 运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化。Committed Bytes与Available Bytes监测内存泄露Paging File\ 阅读全文
posted @ 2011-07-15 20:15 qanholas 阅读(650) 评论(0) 推荐(0) 编辑
摘要:CREATE DATABASE hhhh ON PRIMARY ( NAME = N'hhhh', FILENAME = N'F:\hhhh.mdf' ) LOG ON ( NAME = N'hhhh_log', FILENAME = N'F:\hhhh.LDF')GOUSE [master]GOALTER DATABASE [hhhh] SET SINGLE_USER WITH ROLLBACK IMMEDIATEGOUSE [master]GOEXEC master.dbo.sp_detach_db @dbname = N&# 阅读全文
posted @ 2011-07-09 23:26 qanholas 阅读(407) 评论(0) 推荐(0) 编辑
摘要:EXEC sp_changedbowner sasp_helplogins 阅读全文
posted @ 2011-07-09 22:54 qanholas 阅读(193) 评论(0) 推荐(0) 编辑
摘要:SQL2005已经发行了很久了,SQL2008也都出来一断时间了,但因为SQL2005和SQL2008的界面都是用.NET写的,所以启动的速度很慢,因此我还是在用SQL2000的查询分析器,但SQL2000的查询分析器在直接打开SQL2005或2008的视图或存储过程时,会报DMO出错,使用很麻烦,所以还是要装SQL2005的客户端来用。一次在打了SQL2005的SP2的补丁后发现,SQL2000的查询分析器也可以直接打开SQL2005的视图了,于是在研究后发现,SQL2005在打了SP2之后,会在系统里注册上新版的sqldmo.dll,于是就可以直接打开视图了。现在我的简版的SQL2000. 阅读全文
posted @ 2011-07-05 22:00 qanholas 阅读(1252) 评论(1) 推荐(0) 编辑
摘要:数据记录是这样的 1 2 3 4 5 12 17 18 19 20 25 请问sqlserver2000如何显示成这样1-51217-2025 DECLARE @t TABLE(num INT)INSERT INTO @tSELECT 1 UNION ALLSELECT 2 UNION ALLSELECT 3 UNION ALLSELECT 4 UNION ALLSELECT 5 UNION ALLSELECT 12 UNION ALLSELECT 17 UNION ALLSELECT 18 UNION ALLSELECT 19 UNION ALLSELECT 20 UNION ALLSELE 阅读全文
posted @ 2011-07-05 21:45 qanholas 阅读(488) 评论(2) 推荐(0) 编辑
摘要:/******* 导出到excel */EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /*********** 导入Excel */SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:/test.xls";User 阅读全文
posted @ 2011-07-05 20:44 qanholas 阅读(13288) 评论(2) 推荐(1) 编辑
摘要:数据库的恢复模式是数据库遭到破坏时还原数据库中数据的数据存储方式,它与可用性、性能、磁盘空间等因素相关。每一种恢复模式都按照不同的方式维护数据库中的数据和日志。Microsoft SQL Server 2008系统提供了以下3种数据库的恢复模式:完整恢复模式大容量日志记录的恢复模式简单恢复模式完整恢复模式是最高等级的数据库恢复模式。在完整恢复模式中,对数据库的所有操作都记录在数据库的事务日志中。即使那些大容量数据操作和创建索引的操作,也都记录在数据库的事务日志中。当数据库遭到破坏之后,可以使用该数据库的事务日志迅速还原数据库。在完整恢复模式中,由于事务日志记录了数据库的所有变化,所以可以使用事 阅读全文
posted @ 2011-07-05 20:37 qanholas 阅读(2726) 评论(1) 推荐(0) 编辑
摘要:用法:bcp{dbtable|query}{in|out|queryout|format}数据文件[-m最大错误数][-f格式化文件][-e错误文件][-F首行][-L末行][-b批大小][-n本机类型][-c字符类型][-w宽字符类型][-N将非文本保持为本机类型][-V文件格式版本][-q带引号的标识符][-C代码页说明符][-t字段终止符][-r行终止符][-i输入文件][-o输出文件][-a数据包大小][-S服务器名称][-U用户名][-P密码][-T可信连接][-v版本][-R允许使用区域设置][-k保留空值][-E保留标识值][-h"加载提示"][-x生成xml 阅读全文
posted @ 2011-07-05 20:15 qanholas 阅读(23098) 评论(0) 推荐(7) 编辑
摘要:using System;using System.Collections.Generic;using System.Text;using System.Data.SqlTypes;using System.Text.RegularExpressions;using Microsoft.SqlServer.Server;using System.Net;using System.IO;namespace qanholas{ public class net { [SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.No 阅读全文
posted @ 2011-07-04 10:41 qanholas 阅读(287) 评论(0) 推荐(0) 编辑
摘要:T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了。这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能。这个随笔中将介绍在SQL Server中扩展C#程序实现正则表达式的替换功能。新建一个类库程序命名为Regex,打开Visual Studio 2008,点击File,点击New,点击Project,在弹出的New Project对话框中选择Class Library,项目名称为Regex。 将项目中的类Class1命名为Regex,在这个类中写入如下代码: us 阅读全文
posted @ 2011-07-04 10:10 qanholas 阅读(4145) 评论(5) 推荐(3) 编辑