再见西城 发表于 2015-1-16 22:22:38

MSSQL网站制作之[SQL Server]办理经常使用SQL语句

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。server|语句办理经常使用SQL语句

  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完成的一切修复,包含必要较长工夫的修复(如重修索引)。
  实行这些修复时不会有丧失数据的伤害。

mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。

爱飞 发表于 2015-1-19 09:42:24

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

兰色精灵 发表于 2015-1-27 12:48:18

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

谁可相欹 发表于 2015-2-5 09:51:46

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.

蒙在股里 发表于 2015-2-11 08:59:34

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

若相依 发表于 2015-3-2 07:48:31

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

老尸 发表于 2015-3-11 03:10:59

同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。

精灵巫婆 发表于 2015-3-17 19:33:06

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

只想知道 发表于 2015-3-24 22:47:38

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
页: [1]
查看完整版本: MSSQL网站制作之[SQL Server]办理经常使用SQL语句