- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(SQL汇总
SQL面试题
怎么建索引及分类,索引有什么好处?
在SQLSERVER中:
1、Microsoft SQL Server”→“企业管理器
2、使用脚本创建。如:create nonclustered index ind_tit on titles1(title_id)
用过select、update、delete吗?如果用过,写出这些命令后面的关键字?
Select * from 表 Update 表 Set 字段 Delete from 表
你会数据库性能优化吗?
逻辑数据库规范化问题
第1规范:没有重复的组或多值的列;
第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分;
第3规范: 一个非关键字段不能依赖于另一个非关键字段。
使用这些规则设计数据库会产生较少的列和更多的表,因而减少了数据冗余,也减少了用于存储数据的页
生成物理数据库
要想正确选择基本物理实现策略,必须了解和利用好数据库访问格式和硬件资源的操作特点,特别是内存和磁盘子系统i/o。以下是一些常用技巧:
与每个表列相关的数据类型应该反映数据所需的最小存储空间,特别是对于被索引的列更是如此。比如能使用smallint类型就不要用integer类型,这样索引字段可以被更快地读取,而且可以在一个数据页上放置更多的数据行,因而也就减少了i/o操作。
把一个表放在某个物理设备上,再通过sql server的段把它的不分簇索引放在一个不同的物理设备上,这样能提高性能。尤其是系统采用了多个智能型磁盘控制器和数据分离技术的情况下,这样做的好处更加明显。
合理使用索引
索引是数据库中重要的数据结构,它的根本目的就是提高查询效率。索引的使用要恰到好处,其使用原则如下:
在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引;在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引;在条件表达式中经常用到的不同值较多的列上建立索引,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。 如果待排序的列有多个,可以在这些列上建立复合索引。
避免或简化排序
应当尽量简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序这个步骤。为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表(尽管有时可能影响表的规范化,但相对于效率的提高是值得的)。如果排序不可避免,那么应当试图简化它,如缩小排序的列的范围等。
避免相关子查询
如果一个列同时在主查询和where子句中出现,很可能当主查询中的列值改变之后,子查询必须重新查询一次。而且查询嵌套层次越多,效率越低,因此应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。
存储过程,触发器是什么。
存储过程(procedure)类似于C语言中的函数
用来执行管理任务或应用复杂的业务规则
存储过程可以带参数,也可以返回结果
优点:
执行速度更快 ;允许模块化程序设计 ;提高系统安全性;减少网络流通量
分类:
系统存储过程
由系统定义,存放在master数据库中
类似C语言中的系统函数
系统存储过程的名称都以“sp_”开头或”xp_”开头
用户自定义存储过程
由用户在自己的数据库中创建的存储过程
类似C语言中的用户自定义函数
创建:定义存储过程的语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型 = 默认值 OUTPUT,
…… ,
@参数n 数据类型 = 默认值 OUTPUT
AS
SQL语句
GO
和C语言的函数一样,参数可选;参数分为输入参数、输出参数 ;输入参数允许有默认值
调用的语法EXEC 过程名 [参数]
触发器:
触发器是在对表进行插入、更新或删除操作时自动执行的存储过程;触发器通常用于强制业务规则;触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束
可执行复杂的SQL语句(if/while/case)
可引用其它表中的列
它是一种特殊的存储过程
也具备事务的功能
它能在多表之间执行特殊的业务规则
类型:
DELETE 触发器
INSERT 触发器
UPDATE 触发器
触发器触发时:
系统自动在内存中创建deleted表或inserted表
只读,不允许修改;触发器执行
您可能关注的文档
最近下载
- 粮油保管员职业技能竞赛试题.pptx VIP
- 2025年无人驾驶员测试题及答案.doc VIP
- 心理测评399.doc VIP
- 金属非金属矿井通风作业(课件)第1章金属非金属矿山基本知识.pptx VIP
- T_GRM 057.1-2023_非煤岩岩爆倾向性评价规范第1部分:室内指标测定及等级分类.pdf
- 《健康评估》心脏听诊河北大学课程思政案例2022.docx VIP
- 基层医疗卫生机构常见新生儿疾病诊疗指南:新生儿复苏(2025年).pptx VIP
- 血小板减少性紫癜护理查房.pptx VIP
- 《劳动与技术》一年级上册教案完整版.pptx VIP
- 金属非金属矿井通风操作证考试题库及答案.pdf VIP
文档评论(0)