我在 Sql Server 2008 中有一个视图,当只执行一个:
SELECT * FROM [Table]
Run Code Online (Sandbox Code Playgroud)
将返回大约 40000 行乘 130 列。以下是 6 次运行时的客户端统计信息(平均大约 7 秒):

让我们假设这些时间都很好,当应用过滤器时问题就出现了。以下是 6 次运行时的客户端统计信息(平均大约 6 秒):

有一些事情令人讨厌/令人沮丧:
过滤后的 SQL 看起来像:
SELECT * FROM [Table] Where [IntColumn] = 15 -- returns 16 rows
Run Code Online (Sandbox Code Playgroud)我来找你们是因为我不知道为什么过滤后的版本可能需要这么长时间。SQL 引擎从执行开始就找到这 16 行,然后计算/查找 130 列的值应该非常简单。我的问题真的是:
以下是匿名执行计划(.zip 中的 .sqlplan):
我们公司有一个中央 Sql Server 数据库,该数据库连接到许多应用程序(Web、后端/前端服务、后台等)。该数据库托管在带宽昂贵的小国(为了税收优势)。
有没有办法详细了解带宽使用情况?例如每个应用程序、每个存储过程、每个登录如何发送字节......
我想在 Sql Server 上监视它,因为我不能在客户端执行此操作(客户端太多,不适合为此更改客户端代码)
因为我正在处理将 SQL SERVER 作为数据库的项目......我在我的项目中维护隔离级别,我为我的项目启用了快照隔离级别......
由于我必须进行一些脏读,我正在使用设置查询它。我已经SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED.在存储过程中实现了它......这是我存储过程的简短版本
ALTER PROCEDURE [dbo].[proc_ReadDirtyData]
@id INT,
@mode VARCHAR(5)
AS
BEGIN
--Read Dirty Data
IF (@mode = 'RDD')
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM tbl_transaction
WHERE id = @id;--@id foreign key in tbl_transaction.
--This read has been done during the transaction from C# Apps
END
END
Run Code Online (Sandbox Code Playgroud)
在我的 C# 应用程序中,保持以下结构
snapshot transaction start
stage1 : tblmaster --generates id
stage2 :tblchild --inserts the data with above id as …Run Code Online (Sandbox Code Playgroud) 有什么办法来设置timeoffset一个中datetimeoffset柱直接,而不必使用SWITCHOFFSET其改变的日期呢?
在下面的帖子中,我们可以看到SWITCHOFFSET将相应地更改日期以及设置时间偏移(这不是我们想要的):http :
//blog.sqlauthority.com/2010/07/15/sql-server-datetime-功能开关偏移示例/
例如,我的日期值为“2013-02-10”,并希望将其记录在不同的时区,而不会丢失“2013-02-10”。只需将 timeoffset 设置为需要的值,例如:+11、-4、-6 等。
是否可以?
谢谢。
如何监控我的 SQL Server 正在运行的 SQL 语句,是否可以仅使用 SQL Server 而没有第三方工具?
作为替代方案,有人可以推荐任何可以通过 ODBC 连接监视运行语句的免费工具吗?
我希望抓取大量网页 (500,000,000,000) 记录并能够存储链接结构以备日后使用。我计划布置数据库的方式如下:
2张桌子
ID URL - Max Length = 2048 chars
---------- -------------------------------
1 http://www.site1.com/page.php
2 http://www.site2.com/page-abc.php
3 http://www.site3.com/page-1.php
4 http://www.site4.com/page-cd.php
5 http://www.site5.com/page-nice.php
6 http://www.site6.com/page-some.php
7 http://www.site7.com/page-hrmm.php
8 http://www.site8.com/page-stack.php
9 http://www.site9.com/page-ex.php
10 http://www.site10.com/page-dba.php
Run Code Online (Sandbox Code Playgroud)
Page Links
---------- -------------------------------
2 1
3 1
4 1
5 1
6 1
7 1
8 1
8 9
9 1
10 1
Run Code Online (Sandbox Code Playgroud)
基本上,我将能够看到哪些网页链接到每个网站的重复/几级深度。我想绘制一个大型网站网络及其链接模式。
所以我需要知道是否有更好的方法来这样做,也许还有一些关于如何设计数据库结构/系统的建议。我计划从 PostgreSQL 开始,因为我已经使用过它,但是有了这么多的数据,我对任何事情都持开放态度。
我有一个 21 列的表。大多数是数字,其余的是nvarchar。
我需要添加 4 列,这些列将包含每行的 XML 数据。每行的 XML 数据可以是 200 到 2,000 行。
问题是:
将 XML 类型的列添加到同一个表是否会改变查询该表的速度?
当我将 xml 类型的列添加到另一个表并在执行查询时连接两个表时,有什么性能优势?
对 XML 数据进行编码以缩小它并在应用程序中对其进行解码是否更好?
移动模型数据库后,SQL Server 2008 R2 无法启动。有任何想法吗?错误:945,严重性:14,状态:2。有什么想法吗?Sql 2008 R2 不会以trace -f -T3608 或单用户模式-m 启动。需要参数来启动短信以将模型移回原处。
我在启动 SQL 服务时遇到问题。目前,由于以下原因,它无法启动:
FileMgr::StartLogFiles:创建或打开文件“E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\modellog.ldf”时发生操作系统错误 2(系统找不到指定的文件。)。诊断并更正操作系统错误,然后重试该操作。
这里的问题在于这个 .ldf 文件不在 E 驱动器上。没有E:驱动器。该文件位于 F: 驱动器上。
我找不到任何地方可以告诉 SQL 更改此设置。我无法删除/移动/分离/等数据库,因为我什至无法启动服务以进行连接。
卷移动后,这发生在 3 个不同的 SQL 实例上。有任何想法吗?
SQL 2008
创建数据库时是否可以通过脚本更改LOG文件?我需要设置文件大小、增长等,但不指定要创建数据库的位置。例如
CREATE DATABASE [NewDatabase]
GO
ALTER DATABASE [NewDatabase]
MODIFY FILE
(SIZE = 10MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 1MB);
GO
**ALTER DATABASE [NewDatabase]
MODIFY LOG
(MAXSIZE = 200MB,
FILEGROWTH = 1MB
);
GO**
Run Code Online (Sandbox Code Playgroud)