SQL培训-代码编写技巧.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL培训-代码编写技巧

摘要 简单技巧 并发保护 索引利用 查看执行性能 事务隔离级别与锁 死锁 事务嵌套 调用过程使用过程名变量 declare @proc_1 varchar(64) select @proc_1 = ‘sql2k..sp_pubgettime’ exec @time = @proc1 同于 exec @time = sql2k..sp_pubgettime 优: 生成过程时不会有提示信息,如: 无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程 所依赖的对象 ‘sql2k..sp_audit_get_serialno’。仍将创建该存储过程。 劣:通过sysdepends信息就不能得到过程调用的相关性。 exec调用sql语句 declare @money_type char(1), @exchange_type char(1), @sql_string varchar(2000) select @sql_string = ‘select * from run2k..fsjour where 1=1’ if @money_type ‘’ select @sql_string = @sql_string + ‘ and money_type = @money_type’ if @exchange_type ‘’ select @sql_string = @sql_string + ‘ and exchange_type = @ exchange_type ’ exec (@sql_string) 优:灵活拼写查询语句。 当条件判断很多时可只将需要判断的条件运行,不触发的条件过滤,提高查询效率。 劣:exec中的变量和临时表将不能被传出,可使用结果集的方式传出 insert #temp1 exec (‘select * from run2k..fsjour where fund_account = 1’) 记录数据更新后状态 实现方式一 update run2k..fund set current_balance = current_balance + 1000 where fund_account = 1 select @post_balance = current_balance from run2k..fund where fund_account = 1 insert runk2..fsjour values(@pos_balance,…) 实现方式二 update run2k..fund set @post_balance = current_balance = current_balance + 1000 where fund_account = 1 insert runk2..fsjour values(@pos_balance,…) 方式二优于方式一,少了一次查询的开销 流水序号处理 实现方式一 declare @serial_no int select @serial_no = max(serial_no) from run2k..fsjour insert run2k..fsjour values(@serial_no … 实现方式二 declare @serial_no int update run2k..fsjour_no set @serial_no = serial_no = serial_no + 1 insert run2k..fsjour values(@serial_no … 方式二优于方式一。 优:并发性强(方式二会出现索引冲突的情况) 事务小,处理快,效率高(方式二的select操作性能消耗大) 劣:多update了一张表 非必要不关联表 declare @client_name Name, @entrust_no int select @entrust_no = 1 select @client_name = b.client_name from run2k..entrust a, run2k..client b where a.entrust_no = @entrust_no and a.fund_account = b.fund_account 改为 declare @client_name Name, @entrust_no int, @fund_account int select @entrust_no = 1 select @fund_account = fund

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档