我在一个非常高的安全域上有两台 Windows 7 机器,一台充当服务器,另一台充当客户端。
每个盒子都有一个 SQL Server Express 2005 数据库和应用程序“A”,但是我只使用其中一个来存储数据(服务器),客户端计算机仅使用应用程序“A”和一个系统数据源来连接到服务器机器数据库。
我的问题是应用程序“A”表现得很有趣,我想看看数据从服务器计算机数据库到达客户端计算机需要多长时间。
我通常只是从客户端 ping 服务器,但由于这个高安全域上的 GPO 限制,我无法...
显然存在防火墙例外,允许从服务器 -> 客户端进行连接。我可以从客户端计算机运行查询来提供响应时间/任何其他有用的数据吗?
我有 SQL Server Agent (2005) 作业,定期对任何高度碎片化的索引执行 CHECKDB 和碎片整理 (ALTER INDEX REORGANIZE/REBUILD)。这些是典型的维护最佳实践。我想知道我应该将这些作业应用到哪个系统数据库?现在我只在 master 上运行 CHECKDB,我依稀记得设置它,因为我在某本书上看到过它。
那么,我应该针对以下哪项执行 CHECKDB 和/或索引碎片整理?
我正在与一个试图实施 EAV 系统的团队合作。他们决定按类型拆分属性值表,并且他们正在讨论针对不同大小范围的 varchar 使用不同的表。
前任:
我一直认为varchar只会使用它需要的大小。
你知道这是否会提高性能,是否值得额外的编码/逻辑?
我想和你分享这个简单的片段(回答我自己的问题),我也很好奇你如何控制你的 SQL 服务器备份。
我检查了我的巨大数据库并运行了 5 或 7 次收缩任务。我有大约 11 GB 的可用空间。此 DB 用于离线报告操作。之前,当我们创建报告时,它会增长大约 2 或 3 GB(这也很奇怪,但导入和处理了大约 6 百万行 CDR 日志)但上次我们尝试过。即使可用空间约为 11 GB。无法生成报告。磁盘空间意外为空。
因此,进行一些搜索并查看一些建议以检查索引。根据索引碎片,可能存在一些磁盘空间问题。
首先; 索引碎片是否会导致磁盘空间使用效率低下?第二; 如果我让索引重新组织或重建会发生什么?当然,总是有数据库崩溃的风险,但这对数据库有害吗?
我有两个表:Message和Attachments(代表具有一对多关系的实体类型)如下:
CREATE TABLE message (
messageId ...,
[from]...,
[to]...,
subject...,
body...
);
CREATE TABLE attachments (
messageId...,
filename...
);
Run Code Online (Sandbox Code Playgroud)
我想选择基本消息数据并包含一个位列来表示消息是否有附件。我正在尝试在如下所示的操作中使用 EXISTS:
SELECT
M.*,
hasAttachments = EXISTS(SELECT AttachmentId
FROM Attachment
WHERE messageId = M.messageId),
FROM Message M
Run Code Online (Sandbox Code Playgroud)
但这不起作用 - 有什么方法可以做我正在寻找的东西?
我最近一直在运行一些经典的 ASP 代码,想知道使用以下方法进行连接是否存在性能差异:
Provider=SQLOLEDB;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;
Run Code Online (Sandbox Code Playgroud)
或者
Provider=SQLNCLI;server=NTSERVERNAME\SQLEXPRESS;database=DBNAME;uid=USER;pwd=PASSWORD;
Run Code Online (Sandbox Code Playgroud)
我似乎记得某些提供程序选项(主要来自 SQL Server 2000 及更早版本)会影响性能,但我无法确定这两个提供程序是否存在这种情况。
我唯一能找到的文章解释了后者将让我使用 SQL Server 2005 中的一些新功能(XML 数据类型等)和一些其他功能支持问题 - 但与性能无关。
我有一个数据库服务器 SQL Server 2005,它位于专用网络中。现在我需要为网络服务器创建一个数据库,所以我想将此数据库复制到运行 SQL Server 2008 的外部服务器。我希望内部服务器成为主服务器,外部服务器作为从服务器。新数据每天可能会添加几次,但很少,并且应该在没有手动干预的情况下顺利复制。
这是一种可能的情况,还是我需要将内部的 SQL Server 升级到与外部相同的版本?
如果可能的话,以这种方式进行升级是否有缺点,无论如何都更推荐升级方案?
我有一个执行简单更新的存储过程(见下文)。
我只想更新传递的字段,而不是那些为空的字段。也就是说,如果我没有得到某个参数的参数值,我不想将表数据更新为 null,而是保留当前值。
这可以在这样的 sql 更新语句中完成吗?
ALTER PROCEDURE [dbo].[upd_MessageDetail]
@MessageId INT,
@IsDraft INT,
@IsPreviewed INT,
@IsRead INT,
@IsFlagged INT,
@IsDeleted INT,
@IsArchived INT
AS
BEGIN
UPDATE MessageDetail
SET
IsDraft = @IsDraft,
IsPreviewed = @IsPreviewed,
IsRead = @IsRead,
IsFlagged = @IsFlagged,
IsDeleted = @IsDeleted,
IsArchived = @IsArchived
WHERE MessageId = @MessageId
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个到 SQL Server 2005 的 ODBC 连接。
当我从 MS Access 链接到表时,有些表只有“已删除”的数据。
这意味着显示了行和列,但所有数据似乎都被“删除”(图像中的“Geloscht”)
我发现同一个数据库的一些表可以正常工作,这很了不起。

sql-server-2005 ×10
sql-server ×4
performance ×2
backup ×1
connectivity ×1
dbcc-checkdb ×1
eav ×1
index ×1
maintenance ×1
ms-access ×1
network ×1
odbc ×1
replication ×1