MSSQL教程之怎样修单数据库形态
在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。数据|数据库HOWTOFIXSQLSERVERDATABASESUSPECT?
怎样修单数据库形态"置疑"?
**********************************************************
Author:黄山光亮顶
mail:leimin@jxfw.com
version:1.0.0
date:2004-1-30
(如需转载,请说明出处!,假如有成绩请发MAIL给我:-))
***********************************************************
在MSSQLSERVER中一向有如许的成绩,SQLSERVER的形态"置疑",我们先来剖析一下SQLSERVER数据库"置疑"的缘故原由:
1.毛病的删除日记;
2.硬件(HD)破坏,形成日记和数据文件写毛病;
3.硬盘的空间不敷,好比日记文件过年夜;
办理举措:
这是最复杂的举措是无数据库的全备份,然后恢复便可.
步骤:
1.删除原始的数据库:
USEMASTER
GO
DROPDATABASEDB_SUEPECT
2.创建同名的数据库:
USEmaster
GO
CREATEDATABASEDB_SUSPECT
ON
(NAME=DBNAME_DAT,
FILENAME=C:,
SIZE=10,
FILEGROWTH=5)
LOGON
(NAME=DBNAME_LOG,
FILENAME=g:,
SIZE=5MB,
FILEGROWTH=5MB)
GO
3.恢单数据库:
RESTOREDATABASEDB_SUSPECT
FROMDBNAME_BACKUP.DAT
4.数据库完全性检测:
DBCCCHECKDB(DB_SUSPECT)
5.从头启动MSSQLSERVER服务.
假如没有全备份,那就要用一些特别的办法:
1.设置数据库为告急形式
UseMaster
GO
sp_configureallowupdates,1
reconfigurewithoverride
GO
UPDATEsysdatabasesSETstatus=32768wherename=DB_SUSPECT
GO
2.停失落SQLServer服务:
NETSTOPMSSQLSERVER
3.把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走:
4.启动SQLServer服务:
NETSTARTMSSQLSERVER
5.从头创建一个同名的数据库DB_SUSPECT;
USEmaster
GO
CREATEDATABASEDB_SUSPECT
ON
(NAME=DBNAME_DAT,
FILENAME=C:,
SIZE=10,
FILEGROWTH=5)
LOGON
(NAME=DBNAME_LOG,
FILENAME=g:,
SIZE=5MB,
FILEGROWTH=5MB)
GO
6.设置数据库运转在单用户的形式:
USEMASTER
GO
ALTERDATABASEDB_SUSPECTSETSINGLE_USER
GO
7.停失落SQL服务:
NETSTOPMSSQLSERVER
8.把本来的数据文件再掩盖返来:
9.启动SQLServer服务:
NETSTARTMSSQLSERVER
10.从头设置SQLSERVER的形态:
USEMASTER
GO
EXECsp_resetstatus"DB_SUSPECT"
11.数据库完全性检测:
DBCCCHECKDB(DB_SUSPECT)
12.恢单数据库为多用户形式:
USEMASTER
GO
ALTERDATABASEDB_SUSPECTSETMULTI_USER
GO
13.恢复SQLSERVER原始的设置:
USEMATER
GO
UPDATEsysdatabasesSETstatus=4194320wherename=DB_SUSPECT
GO
14.设置SQLSERVER不同意更新体系表:
USEMASTER
GO
sp_configureallowupdates,0
reconfigurewithoverride
GO
15.从头启动MSSQLSERVER服务:
最好从头启动操纵体系
16.备份数据库:
能够经由过程SQLSERVER企业办理器或T-SQL.必要备份MASTER和DB_SUSPECT
Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上. 总感觉自己还是不会SQL 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。 sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
页:
[1]