标签: sql-server-2005

向此查询添加订单返回比不添加更快,为什么?

关于为什么向此查询添加排序的任何想法比没有 order by 的返回速度要快得多?我希望相反,那么什么会导致这种情况发生?

SELECT TOP (500) r.cID,r.aField,a.Description 
       FROM dbo.tblR r  
            inner join dbo.tblA a on r.aID = a.ID  
            left join dbo.tblX x on x.cID = r.cID 
       WHERE (ISNULL(x.anotherField,'') <> r.anotherField or x.field3 is null) 
            and (r.ID=(select max(ID) from tblR where cID = r.cID and
            ISNULL(aField,'') <> '')) 
            and r.cID in (select ID from tblC)
       ORDER BY r.cID ASC -- when I comment this line out it runs much slower
Run Code Online (Sandbox Code Playgroud)

执行计划没有多大帮助。

sql-server-2005 order-by

6
推荐指数
1
解决办法
2190
查看次数

如何使用全文搜索安装 SQL Server Express 2005

我需要安装具有全文搜索功能的 SQL server 2005 Express 版本。我不知道下载什么以及安装数据库管理系统的顺序。有人能给我提供下载带有全文搜索的版本的链接吗[因为默认的 38Mb 安装文件没有这个功能]。
还分步说明在安装过程中启用全文搜索。

sql-server-2005 full-text-search

6
推荐指数
1
解决办法
2245
查看次数

子查询或连接?

在 SQL 服务器效率方面哪个更好;使用子查询或连接?

我知道不相关比相关子查询更好。但是连接呢?

使用联接使 SQL 变得更具可读性和可理解性

OUTER JOIN and check for NULLS
Run Code Online (Sandbox Code Playgroud)

但是对于数据库的性能来说是更糟还是更好?

sql-server-2005 sql-server

6
推荐指数
1
解决办法
1026
查看次数

在 SQL Server 2005 中,如何确定用户所需的最低权限?

我是我小组的意外 DBA,我继承了一个遵循许多不良做法的数据库。 当前,每个登录都是 sysadmin 组的成员

确定每个帐户所需的最小权限的最简单方法是什么?我知道我可以使用 SQL Server Profiler 来记录所有执行的 SQL 命令,但它会返回一堆信息。我想不出一种简单的方法来总结所有这些数据。

任何帮助,将不胜感激。

sql-server-2005 sql-server

6
推荐指数
1
解决办法
146
查看次数

为什么行溢出在 SQL Server 2005 上不起作用

我有一个包含大约 860 列的表的 SQL Server 2005 数据库。除了 ID 列之外,所有其他列都是 varchar(N),其中 N 是 100 或 500。在插入超过 8000 个字符的新行(通过 InfoPath 表单作为前端)时,SQL 服务器返回以下错误:

Cannot create a row of size 11024 which is greater than the allowable maximum of 8060.
Run Code Online (Sandbox Code Playgroud)

据我了解,由于Row Overflow ,这不应该发生。

任何人都可以提供一些有关为什么会发生这种情况的见解吗?

sql-server-2005 sql-server varchar

6
推荐指数
1
解决办法
985
查看次数

抽象存储结构上的数据库放置

很多时候,我们都听到了同样的事情。关于在哪里放置 OLAP/OLTP 数据库、在哪里放置tempdb、在哪里放置事务日志等的建议。

但是假设您处于存储的物理定义对您来说是个谜的环境中。换句话说,确保您可以看到逻辑驱动器,并且您可以给系统管理员打电话并要求提供更多空间,但您永远不知道什么是不同的物理驱动器(假设在幕后有 SAN 或 NAS)。如果您实际上不知道这一点,那么您如何通过将受到重创的tempdb数据库放在不同的物理驱动器上来遵循最佳实践?

这方面的最佳做法是什么?

sql-server-2005 sql-server-2008 sql-server storage

6
推荐指数
1
解决办法
186
查看次数

如何设计表格以快速版本化文本数据?

我在这里谈论的版本不是版本控制系统。就像在 SO 中一样,我得到了一些可以进行版本控制的文本数据(将它们与问题进行比较)(在编辑、保存、回滚的意义上)。每次编辑、更新、保存的内容都将根据最终用户的选项保存为新版本。我应该如何为这种任务设计一张桌子?

当前实施

id pk auto increment
content
parentid defaults to 0
version  defaults to 0
Run Code Online (Sandbox Code Playgroud)

样本记录

id     content        parentid        version
1      Hello World        0              0
2      Hello Doggy        1              1
3      Hello Kitty        1              2
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,父 ID 等于现有 ID 的每条记录都将保存在增量版本中(实际上是在服务器端代码中计算的)。显示在 UI 中,如下所示

1.Hello World
    -Hello Doggy(Version1)
    -Hello Kitty(Version2)
Run Code Online (Sandbox Code Playgroud)

其中每个都显示为链接,以便可以进行进一步的编辑。事情像预期的一样没有问题,但我们想改进这一点,我认为最好从桌子设计开始。

sql-server-2005 database-design sql-server version-control

6
推荐指数
1
解决办法
1609
查看次数

从表中恢复意外删除的行

我的客户不小心从测试数据库中删除了一个表的所有记录。此测试数据库位于 SQL Server 2005 Express 中,我们没有备份。

是否可以从事务日志 (.ldf) 文件中恢复已删除的行?如果是,如何?

sql-server-2005 sql-server recovery

6
推荐指数
2
解决办法
5598
查看次数

获取 MS SQL Server 中列的 NULL 统计信息

在 MS SQL Server 2005 中,如何提取给定列的 NULL 分数(或 NULL 计数)的统计信息?

Oracle 和 PostgreSQL 中也有同样的信息,听说 MS SQL 也有统计数据,但不知道在哪里可以找到。谷歌没有多大帮助。

我希望我会听到类似的话

SELECT null_frac FROM pg_stats WHERE tablename='mytab' and attname='mycol';
/* PostgreSQL, stats gathered by ANALYZE */
Run Code Online (Sandbox Code Playgroud)

或者

SELECT nullcnt FROM custom_stats_table WHERE tabname='MYTAB' and colname='MYCOL';
/* Oracle, stats gathered by dbms_stats.get_column_stats */
Run Code Online (Sandbox Code Playgroud)

我不是在问如何自己计算这些值——我知道该怎么做。我需要数千列的这些统计信息,并且在我正在处理的数据库上计算这将花费很长时间。我需要近似值,它们应该在服务器中的某个地方 - 基于成本的优化器无论如何都需要它们。

sql-server-2005 sql-server statistics

6
推荐指数
1
解决办法
1285
查看次数

同步数据库以进行服务器转换

我正在从一个旧的 web/sql 盒子过渡到一个完全不同的主机上的更强大的解决方案(800hosting 到 RackSpace)。

我们的应用程序对正常运行时间有很高的要求。它 24x7x365 全天候运行并影响数以千计的站点,我希望确保在过渡期间尽可能减少停机时间。(不要问我们现在是如何用一个盒子解决这个问题的。)

我的 Web 服务器计划是一些 DNS 工作,将新的子域指向新的服务器设置,并转发来自现有服务器的请求。这将照顾到足够快地将每个人翻转到新的网络框。问题是数据库 - 我如何保持同步,直到我准备好打开网站上的开关(或者是否值得付出努力,而不是仅仅接受停机来停止应用程序、备份、压缩、传输和恢复?)。

一些细节。我们在旧系统上运行 Sql2k5,在新系统上运行 2k8r2。数据库本身的主数据库约为 30 演出,仓库约为 60 演出。我可以忍受仓库的停机时间,但真的想尽量减少对主数据库的影响。

关于将数据库从旧设置迁移到新设置的最佳方法有什么建议吗?

sql-server-2005 sql-server migration sql-server-2008-r2

6
推荐指数
1
解决办法
154
查看次数