我在这场辩论的双方都阅读了很多内容:仅使用存储过程而不是原始查询是否会显着提高性能?我对 SQL Server 特别感兴趣,但对任何和所有数据库都感兴趣。
我们需要做一个恢复,不能因为其他用户连接。我们以为我们已经断开了每个进程,但显然没有。
我们如何从 Management Studio 启动其他所有人,以便我们进行备份?
我主要是一名应用程序开发人员,但发现自己必须为我当前的项目(顺便说一句......它的 MS SQL Server 2008)做所有的前期数据库工作。作为第一个决定,我试图弄清楚是使用单独的数据库还是在同一数据库中使用单独的架构来划分我的状态。我对 SQL Server Schema 进行了一些阅读,这似乎是一种分离对象域(我喜欢)的自然方法,但我不确定这种模式是否存在隐藏成本。
在这两种方法之间进行选择时,我应该考虑哪些更实际的事情?如果我避免dbo.mytable赞成,myschema.mytable我是否会为我的架构带来其他挑战(或问题)?
作为旁注......在某些时候,这将被移交给真正的DBA 来维护/支持,所以我试图确保我不会让他们的生活变得更艰难。
我有一张包含非常基本信息的表格。只是一个标题和几个日期字段。有一个字段叫做comments,它是varchar(4000) 大多数时候我们把它留空,但有时会在这里输入大量数据。这真的是一个糟糕的设计吗?或者这只是有点低效?
我认为为此列创建一个单独的表会更好。
注意:这是 sql server 2008

我有一个登录表,所有插入都由一个存储过程完成。
CREATE TABLE dbo.LogTable(
LogRefnr int IDENTITY(1, 1) NOT NULL,
LogQuery varchar(255) NOT NULL,
LogTime datetime NOT NULL,
logQueryDuration int NULL,
LogSessionID int NULL,
CONSTRAINT PK_Log PRIMARY KEY CLUSTERED (LogRefnr)
)
go
Create procedure DBO.LogInsert ( @Query varchar(255), @time datetime, @duration int, @SessinID int) as
begin
Insert into LogTable ( LogRefnr, LogQuery, logQueryDuration, LogSessionID)
Values (@Query, @time, @duration, @SessinID);
end;
GO
Run Code Online (Sandbox Code Playgroud)
目前该表中大约有 45500000 行,我想将日志记录定向到不同的表。
我的想法是使用以下脚本
begin Transaction
exec sp_rename LogTable, LogTableOld;
CREATE TABLE dbo.LogTable(
LogRefnr int IDENTITY(46000000, 1) NOT NULL, …Run Code Online (Sandbox Code Playgroud) 因此,我们有一个客户站点抱怨性能严重下降。我看了一眼,很明显问题是因为别人 (grrrr) 设计了一个表,其中包含大约 2000 万多条记录,而没有聚集索引。
现在我想在该表上创建一个聚集索引 - 但在我的测试环境中 create index命令已经运行了一个小时,但仍未完成。客户站点是一个 24/7 全天候工作的车间,在我创建索引时无法承受一个小时的停机时间。
是否有一些不那么强力的创建索引的方法可以快速完成工作,或者以某种不会在服务器繁忙时完全杀死服务器性能的聪明方式来完成?
我们正在使用 SQL Server 企业版。
有没有办法在键入查询时暂时禁止 SQL Server Management Studio 的自动完成?我不想完全禁用自动完成功能,只是说在输入特定单词时按住某个键,以免妨碍到它。
例如说我有以下查询
SELECT Foo, Foo2 FROM SomeTable
Run Code Online (Sandbox Code Playgroud)
当我输入Foo并点击空格键时,SQL Server Management Studio 的自动完成开始并完成Foo到FooBar.
我正在遵循指南 - http://www.sqlchicken.com/2009/07/how-to-create-a-server-side-trace-with-sql-profiler/直到我到达第 8 步
- 现在安排您新创建的脚本。在 SSMS 中连接到要跟踪的服务器。转到您的 SQL Server 代理并展开它,以便您可以看到 Jobs 文件夹。右键单击“作业”文件夹并选择“新建作业”。

我找不到SQL Server Agent。我在哪里可以使这个SQL Server Agent可见?我已经给了当前用户所有的访问权限。
我的第一个问题,请温柔点。我知道 sa 帐户可以完全控制 SQL Server 和所有数据库、用户、权限等。
我绝对相信应用程序不应该在没有完善的、以商务人士为中心的理由的情况下使用 sa 密码。这个问题的答案包括我对以 IT 为重点的讨论的很多推理
我被迫接受一个新的服务管理系统,除非它使用 sa 密码,否则它将无法工作。我从来没有时间弄清楚为什么在设置评估时,服务器团队试图安装它以使用我设置的固定角色,其中包含 db_creater 和我认为需要的其他权限。哪个失败了。然后我让服务器团队使用 sa 帐户安装,但在其数据库的 dbo 角色帐户下运行,但也失败了。脾气暴躁,我试图让它以 sysadmin 角色的帐户运行,但即便如此也失败了,并且没有有用的错误消息,使我能够在不花费比可用时间更多的时间的情况下弄清楚发生了什么。它仅适用于 sa 帐户和以明文形式存储在配置文件中的密码。
当我询问这个问题并且服务器团队与供应商交谈时,他们得到了令人担忧的答案:“这有什么问题?” 然后'好吧,我们可以看看加扰密码'加扰ffs
我知道有一些方法可以限制对文件的访问,但我认为这只是安全性的另一个弱点
无论如何,我的问题是,有人可以向我指出一些文档,我可以用它向企业解释为什么这是一件坏事并且应该是一个很大的不。我在一个领域工作,这意味着我需要认真对待安全问题,并且一直在努力让业务理解,最终可能会被超越,但我需要尝试。
我有一个数据库Project。我的问题是在哪里可以找到我的数据库的.mdf和_log.ldf以便我可以将我的数据库转移到另一个用户。我正在使用 Microsoft SQL Server 2008 Management Studio
我Ssms.exe的存储在这个路径中
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe
Run Code Online (Sandbox Code Playgroud) sql-server-2008 ×10
sql-server ×5
ssms ×2
ddl ×1
index ×1
performance ×1
schema ×1
security ×1
transaction ×1