MSSQL编程:SQLServer办理经常使用SQL语句
在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。server|sqlserver|语句1.检察数据库的版本select@@version
2.检察数据库地点呆板操纵体系参数
execmaster..xp_msver
3.检察数据库启动的参数
sp_configure
4.检察数据库启动工夫
selectconvert(varchar(30),login_time,120)frommaster..sysprocesseswherespid=1
检察数据库服务器名和实例名
printServerName...............:+convert(varchar(30),@@SERVERNAME)
printInstance..................:+convert(varchar(30),@@SERVICENAME)
5.检察一切数据库称号及巨细
sp_helpdb
重定名数据库用的SQL
sp_renamedbold_dbname,new_dbname
6.检察一切数据库用户登录信息
sp_helplogins
检察一切数据库用户所属的脚色信息
sp_helpsrvrolemember
修复迁徙服务器时伶仃用户时,能够用的fix_orphan_user剧本大概LoneUser历程
变动某个数据工具的用户属主
sp_changeobjectowner[@objectname=]object,[@newowner=]owner
注重:变动工具名的任一部分都大概损坏剧本和存储历程。
把一台服务器上的数据库用户登录信息备份出来能够用add_login_to_aserver剧本
检察某数据库下,工具级用户权限
sp_helprotect
7.检察链接服务器
sp_helplinkedsrvlogin
检察远端数据库用户登录信息
sp_helpremotelogin
8.检察某数据库下某个数据工具的巨细
sp_spaceused@objname
还能够用sp_toptables历程看最年夜的N(默许为50)个表
检察某数据库下某个数据工具的索引信息
sp_helpindex@objname
还能够用SP_NChelpindex历程检察更具体的索引情形
SP_NChelpindex@objname
clustered索引是把纪录按物理按次分列的,索引占的空间对照少。
对键值DML操纵非常频仍的表我倡议用非clustered索引和束缚,fillfactor参数都用默许值。
检察某数据库下某个数据工具的的束缚信息
sp_helpconstraint@objname
9.检察数据库里一切的存储历程和函数
use@database_name
sp_stored_procedures
检察存储历程和函数的源代码
sp_helptext@procedure_name
检察包括某个字符串@str的数据工具称号
selectdistinctobject_name(id)fromsyscommentswheretextlike%@str%
创立加密的存储历程或函数在AS后面加WITHENCRYPTION参数
解密加密过的存储历程和函数能够用sp_decrypt历程
10.检察数据库里用户和历程的信息
sp_who
检察SQLServer数据库里的举动用户和历程的信息
sp_whoactive
检察SQLServer数据库里的锁的情形
sp_lock
历程号1--50是SQLServer体系外部用的,历程号年夜于50的才是用户的毗连历程.
spid是历程编号,dbid是数据库编号,objid是数据工具编号
检察历程正在实行的SQL语句
dbccinputbuffer()
保举人人用经由改善后的sp_who3历程能够间接看到历程运转的SQL语句
sp_who3
反省逝世锁用sp_who_lock历程
sp_who_lock
11.检察和压缩数据库日记文件的办法
检察一切数据库日记文件巨细
dbccsqlperf(logspace)
假如某些日记文件较年夜,压缩复杂恢复形式数据库日记,压缩后@database_name_log的巨细单元为M
backuplog@database_namewithno_log
dbccshrinkfile(@database_name_log,5)
12.剖析SQLServerSQL语句的办法:
setstatisticstime{on|off}
setstatisticsio{on|off}
图形体例显现查询实行企图
在查询剖析器->查询->显现估量的评价企图(D)-Ctrl-L大概点击工具栏里的图形
文本体例显现查询实行企图
setshowplan_all{on|off}
setshowplan_text{on|off}
setstatisticsprofile{on|off}
13.呈现纷歧致毛病时,NT事务检察器里出3624号毛病,修单数据库的办法
先正文失落使用程序里援用的呈现纷歧致性毛病的表,然后在备份或别的呆板上先恢复然后做修复操纵
alterdatabase[@error_database_name]setsingle_user
修复呈现纷歧致毛病的表
dbccchecktable(@error_table_name,repair_allow_data_loss)
大概惋惜选择修复呈现纷歧致毛病的小型数据库名
dbcccheckdb(@error_database_name,repair_allow_data_loss)
alterdatabase[@error_database_name]setmulti_user
CHECKDB有3个参数:
repair_allow_data_loss包含对行和页举行分派和作废分派以更正分派毛病、布局行或页的毛病,和删除已破坏的文本工具,这些修复大概会招致一些数据丧失。
修复操纵能够在用户事件下完成以同意用户回滚所做的变动。
假如回滚修复,则数据库仍会含有毛病,应当从备份举行恢复。
假如因为所供应修复品级的原因漏掉某个毛病的修复,则将漏掉任何取决于该修复的修复。
修复完成后,请备份数据库。
repai*_**st举行小的、不耗时的修复操纵,如修复非会萃索引中的附加键。
这些修复能够很快完成,而且不会有丧失数据的伤害。
repair_rebuild实行由repai*_**st完成的一切修复,包含必要较长工夫的修复(如重修索引)。
实行这些修复时不会有丧失数据的伤害。
BDB源自BerkeleyDB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性 备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 可以动态传入参数,省却了动态SQL的拼写。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
页:
[1]