Eri*_*rik 14 t-sql azure-sql-database azure-sql-database-v11 sp-blitzindex
我从 Brent Ozar 的网站下载了 SQL Server First Aid Kit。当我以Azure 数据库服务器级别管理员身份登录时,当我尝试通过 Microsoft Sql Server Management Studio 针对我的主数据库运行sp_BlitzIndex脚本时,出现以下错误:
消息 262,级别 14,状态 18,过程 sp_BlitzIndex,第 18 行 CREATE PROCEDURE 权限在数据库“master”中被拒绝。
我在要测试的数据库实例上成功创建了该过程。当我执行该程序时,我收到一条错误消息:
消息 50000,级别 16,状态 1,第 1265 行无效的对象名称“mydatabase.sys.partitions”。
接下来我尝试聪明一点,直接对master数据库运行存储过程代码,而不创建存储过程,得到以下错误:
此版本的 SQL Server 不支持消息 50000,级别 15,状态 1,第 1267 行引用“mydatabase.sys.indexes”中的数据库和/或服务器名称。
我没有足够的信心开始玩弄约 2700 行索引启发式逻辑的内部工作原理。是否有一种快速、简单的方法可以让这个存储过程在 Azure SQL 数据库上很好地工作,或者我应该在别处寻找索引分析工具/存储过程?
Ken*_*tle 27
肯德拉在这里(作者 sp_BlitzIndex
)
首先,感谢您对该程序感兴趣并进行尝试。
Azure 不会公开我们在盒装产品中获得的所有动态管理视图。我确实参考了sys.dm_db_partition_stats
,但我需要从其他信息中获取sys.partitions
为其他用户。(是否使用压缩?什么类型?)
我还没来得及写一个Azure特定版本的测试,只是因为我对它的需求不是很大。但你的问题确实告诉我,有比我所知道的更多的兴趣——就是这样!
我至少会考虑实现一些错误处理,以便它以优雅的方式让您知道。(这有点移动目标,因为 Azure 也一直在扩展可供用户使用的功能。)