`

浅谈mssql2000的sp_recompile和sp_refreshview

阅读更多
1、sp_recompile
说明:使存储过程和触发器在下次运行时重新编译
原因:存储过程和触发器所用的查询只在编译时进行优化。对数据库进行了索引或其它会影响数据库统计的更改后,已编译的存储过程和触发器可能会失去效率。通过对作用于表上的存储过程和触发器进行重新编译,可以重新优查询。
方法:执行下面的脚本就可以将数据库的所有存储过程在下次运行时重新编译
declare @objName varchar(250)
declare #_cursor cursor for

select name  from sysobjects where type='TR' OR type='P'  order by type
open #_cursor

fetch next from #_cursor into @objName
while @@fetch_status=0
begin  
  exec sp_recompile @objName 
  fetch next from #_cursor into @objName
end
close #_cursor
deallocate #_cursor
print '完成'

2、sp_refreshview
说明:刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期
原因:修改完表,相应的视图没有发生变化是很痛苦的事情,或许这个是微软的bug,希望mssql2005不会出现这个问题,^_^
方法:执行下面的脚本就可以将数据库的所有视图的元数据

declare @ViewName varchar(250)
declare @i int
set @i=0
declare #_cursor cursor for

select name  from sysobjects where type='V'

open #_cursor

fetch next from #_cursor into @viewname

while @@fetch_status=0
begin
  print '成功刷新视图: '+ @viewname
  exec sp_refreshview @viewname 
  set @i= @i +1
  fetch next from #_cursor into @viewname
end

close #_cursor
deallocate #_cursor
print '完成'
print '共成功刷新' + convert(varchar(10),@i) + '个视图'

分享到:
评论

相关推荐

    T-SQL强化(RAISERROR详解,SQL 注入, OUTPUT , WITH RECOMPILE ,sp_addmessage

    本篇将深入探讨五个关键知识点:RAISERROR的使用,SQL注入的防范,OUTPUT参数的应用,WITH RECOMPILE选项的作用以及sp_addmessage存储过程的使用。 首先,RAISERROR是T-SQL中的一个错误处理函数,用于在执行过程中...

    T-SQL强化RAISERROR详解,SQL 注入,使用 OUTPUT 游标参数,使用 WITH RECOMPILE 选项,使用sp_addmessage添加自定义消息

    T-SQL强化RAISERROR详解,SQL 注入,使用 OUTPUT 游标参数,使用 WITH RECOMPILE 选项,使用sp_addmessage添加自定义消息 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA ...

    sql2008系统存储过程

    - 语法示例:`EXEC sp_recompile @objname = N'SomeProcedure'` 21. **sp_lock** - 查看锁定信息 - 用于显示当前锁定的信息。 - 语法示例:`EXEC sp_lock` 22. **sp_spaceused** - 查看空间使用情况 - 用于...

    Sybase内存优化方案

    - **重新编译用户表**:使用`sp_recompile user table`命令来重新编译用户表的执行计划,从而提高查询效率。 通过以上详细的配置步骤,可以有效地对Sybase数据库的内存进行优化,从而提高数据库的整体性能和响应...

    Sybase 优化命令

    - **强制重新编译**:`sp_recompile user table`:强制重新编译用户的表,有助于处理执行计划过时的问题。 #### 四、sybase 数据库监控 为了确保数据库运行稳定,必须持续监控其状态。 - **查看日志记录**:`...

    Sybase编程中出现的错误及其解决办法

    2. 用 alter table 增加表结构时,虽然用 sp_recompile tablename 重编译了所影响的数据库对象,但在运行某些包含"select * from tablename"的存储过程时,存储进程仍不认识用 alter table 增加的列。 在 SYBASE 中...

    Recompile.exe_for_10.2_Tokyo_Downloadly.ir.rar

    《关于“Recompile.exe_for_10.2_Tokyo_Downloadly.ir.rar”:程序重编译与软件更新解析》 在IT领域,程序的更新与优化是常态,这通常涉及到程序的重新编译(Recompile)。"Recompile.exe_for_10.2_Tokyo_...

    存储过程入门与提高

    此外,还可以使用sp_helptext查看存储过程的源代码,sp_recompile强制重新编译存储过程,以适应表结构或数据的变化。 总结,存储过程是SQL Server 2000中的重要功能,它们提供了高效、安全和灵活的数据操作方式。...

    快速解决SYBASE编程中所遇到的莫名错误

    在SYBASE中,使用`ALTER TABLE`命令添加新列后,即使使用`sp_recompile tablename`对受影响的表进行重编译,某些包含`SELECT * FROM tablename`的存储过程仍然无法识别新增的列。例如,创建了一个存储过程`tmpstore`...

    sqlserver存储过程

    EXEC sp_helptext 'sp_stored_procedures'; -- 查看存储过程创建、定义语句 EXEC sp_rename users, stuInfo; -- 修改表、索引、列的名称 EXEC sp_renamedb myTempDB, myDB; -- 更改数据库名称 EXEC sp_defaultdb '...

    第10章存储过程与触发器例题源代码

    此外,通过`EXEC sp_recompile`可以重新编译存储过程,以优化其执行计划。 #### 系统存储过程 系统存储过程如`sp_help`, `sp_depends`, `sp_helptext`等,可以提供有关存储过程的信息,如依赖关系、源代码等,对于...

    数据库知识

    如果在 SQL Server 6.5 中遇到某个存储过程导致的问题,但不确定具体是哪一个存储过程,则可以考虑使用 `sp_recompile` 存储过程来逐个重新编译所有的存储过程。 ```sql DECLARE @procname SYSNAME; DECLARE proc_...

    存储过程文档--mysql

    存储过程是 MySQL 中的一个强大功能,它允许用户预先将常用的或复杂的工作写入 SQL 语句,并将其存储起来,以便在以后的数据库操作中可以快速调用和执行。存储过程可以提高数据库的执行速度,减少数据库开发人员的...

    SQL 数据库代码

    - **管理存储过程**:使用 `sp_help`、`sp_helptext` 和 `sp_stored_procedures`。 #### 规则和默认值 - **规则**:定义列的有效性检查条件。 - **默认值**:自动为未指定值的列提供默认值。 - **约束**:用于保证...

    sql-scripts:Microsoft SQL Server脚本的回购。 这些针对DBAadmins和数据库开发人员

    dba_recompile_sp.sql 重新编译特定数据库或所有proc中的所有proc; 也可以重新编译特定的表。 dba_replicationLatencyGet_sp.sql 检索复制等待时间(以秒为单位) dba_replicationLatencyMonitor_sp.sql 用于检索...

    SQL Server用法总结.docx

    9. **其他高级特性**:存储过程还可以使用 `WITH RECOMPILE`(每次执行时重新编译)、`EXECUTE AS`(指定执行上下文)等选项,提供更高的灵活性和安全性。 以上只是SQL Server的一部分功能,实际上它还包括触发器、...

    实验五存储过程和触发器的使用.pdf

    可选的选项如`RECOMPILE`和`ENCRYPTION`分别表示每次运行时重新编译和加密存储过程的源代码。创建后,存储过程的信息存储在`sysobjects`系统表中。 【执行存储过程】 执行存储过程使用`EXECUTE`或`EXEC`命令,可以...

    技术支持面试题实用.pdf

    14. 重新编译存储过程的方法有sp_recompile系统存储过程、创建时指定with recompile和execute时指定with recompile。 15. 触发器的描述中,A、B、C选项正确,触发器由事件触发,实现复杂参照完整性和数据一致性,是...

Global site tag (gtag.js) - Google Analytics