我想在我的内部应用程序中使用集成安全性,这些应用程序都在一个域中。不幸的是,我一直无法让它正常工作。我想在 SQL Server 中为整个 Exchange (Active Directory) 组分配一个角色,以便对某些表进行读/写访问。这样我就不必在有人被雇用时创建操作员或在有人被解雇时删除操作员。这可能吗?我将采取哪些步骤来做到这一点?
扩展事件似乎是一种更好的技术,对服务器的压力更小,但 SQL Profiler/perfmon 具有更好的工具。此外,扩展事件似乎具有更陡峭的学习曲线。每个应该在什么上下文中使用?是否值得通过陡峭的学习曲线来利用扩展事件?
我听说将索引存储在不同的文件组和驱动器上可以提高数据库的性能,因为驱动器不必在索引和索引引用的数据之间来回切换。我也听说这是一个神话。
何时将非聚集索引存储在单独的文件组和驱动器上是可取的?哪些性能/分析器证据会导致我得出该结论?硬件是否在决策中起作用(是否在单个驱动器上使用 RAID/SAN)?
我必须为我的数据库运行相当多的长时间运行的查询(重建索引、更新大量数据)。是否有替代方法可以在 SQL Server Management Studio 中运行查询并每隔一小时左右检查一次?我想在完成后通过电子邮件或发送消息,但不知道最好的工具。
我想重新组织我的 SQL Server 2008 数据库中所有表的索引,名为“db”。我尝试以下命令:
ALTER INDEX all ON db REBUILD
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
找不到对象“db”,因为它不存在或您没有权限
我究竟做错了什么?
我有一个表,用于存储每个大小在 16-100 KB 之间的图像。由于图像太小,我采纳了Microsoft 的建议,没有使用 FILESTREAM 数据类型。该表的构造很简单:
CREATE TABLE Screenshot(
Id bigint NOT NULL,
Data varbinary(max) NOT NULL,
CONSTRAINT PK_Screenshot PRIMARY KEY CLUSTERED
(
Id ASC
)WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
该表被大量插入(过去一周有 200 万条记录)并且很少被选中。关键是使用hilo 算法,因此大多数情况下会在末尾添加新行。
由于锁定和争用,当许多进程尝试插入到该表中时,我一直遇到问题。查询因等待锁定而超时。
我应该将此表迁移到它自己的文件组和驱动器吗?在这种情况下,如何提高插入性能并减少争用?
我有一个需要批量导入的 varbinary(max) 列。我放入此列的数据是 C# 中的 byte[]。如何格式化用于批量导入的逗号分隔文件中的数据?换句话说,如何以 bcp 实用程序接受的方式从 byte[] 转换为字符串?
我尝试在我的 SQL Server 2008 数据库上创建维护计划,并且对一些现成可用的东西印象深刻。但是,创建后,似乎很难自定义。这让我想知道我是否应该使用我想要完成的活动创建 SQL 作业。与手动创建 SQL 作业相比,使用维护计划有什么好处吗?
我正在尝试创建一个 SQL 作业来备份我的数据库。我希望有:
我开始使用维护计划来做这件事,但决定通过作业来管理它会更灵活。
我的问题是:如何命名备份文件?我是否使用日期命名约定命名它们并使用相同的约定来删除旧文件?有更容易的方法吗?
如果我想多了,应该使用维护计划,我也会很感激这个答案。