AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-13194

reticentKoala's questions

Martin Hope
reticentKoala
Asked: 2014-09-11 07:24:04 +0800 CST

使用 TOP 并获得不同的结果集

  • 3

我正在尝试编写一个有效的查询来删除数据块。为此,我希望通过使用主键来获取最旧的记录来避免索引扫描。但是,我看到返回了一些意想不到的结果。

我希望这个

SELECT TOP 15 OrderID FROM [Order]

会给我最旧的 15 条记录,因为我可以依赖主键递增,因此表中的存储顺序从低到高。

但是,这会返回不同的结果集

SELECT TOP 15 OrderID FROM [Order] ORDER BY DateCreated ASC

这似乎是一种更准确但更昂贵的方式来获得我需要的结果。

令人困惑的是,这

SELECT TOP 15 * FROM [Order]

为此提供一组不同的 OrderID (PK)

SELECT TOP 15 OrderID FROM [Order]

我了解http://msdn.microsoft.com/en-gb/library/ms189463.aspx解释说,如果没有 ORDER BY 子句,则无法保证订单,但希望 PK 为我订购,无法解释两者之间的差异最后两个选择子句。

sql-server t-sql
  • 1 个回答
  • 2511 Views
Martin Hope
reticentKoala
Asked: 2014-07-30 01:34:13 +0800 CST

重新启动参与合并复制的发布者

  • 1

我们的托管服务提供商希望重新启动合并复制拓扑中发布者的 SQL Server。

我无法从 Microsoft 文档中清楚地理解执行此操作的最佳做​​法。

我们的拓扑由大约 40 个拉取订阅者组成。同步通过运行调用 RMO 的应用程序的 Windows 计划任务按计划每 5 分钟执行一次。

我的一些顾虑包括: 事务是否会安全地提示订阅者——我想这可能会导致事务日志增长?Publisher 下线的合理时间段是多少 - 我需要担心过期吗?

如果有人可以概述安全关闭 Publisher 所涉及的步骤,那将是一个很大的帮助。

非常感谢。

replication merge-replication
  • 1 个回答
  • 350 Views
Martin Hope
reticentKoala
Asked: 2013-09-20 01:59:06 +0800 CST

复制快照大小过大导致失败

  • 3

我正在寻找复制快照超过我们预测的 5 倍的解释

在复制失败后,我们正在尝试使用新快照重新初始化订阅。数据库大小为 135GB,数据库中的一个表为 60GB - 我们已将本文排除在出版物之外。这意味着我们预计快照大小约为 75GB。

我们曾多次尝试创建快照,但由于磁盘空间不足而失败。昨晚快照用 340GB 的可用空间填充了一个磁盘。

我欢迎对这么大的快照做出任何解释。

在检查可能的原因时,我注意到快照格式设置为“字符 - 如果发布者或订阅者未运行 SQL Server,则需要”。尽管事实上这种跨国复制的两端都是本机 SQL Server。格式之间的大小是否不同?

提前致谢。

Native mode file Size:105 MB
C:>bcp IVM_ArchiveTest.dbo.Event out D:\NOBACKUP\UseOnce\EventNative.dat -T -n 
218977 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) 
Total : 7878 Average : (27796.01 rows per sec.) 

Character mode file Size:66 MB 
C:\>bcp IVM_ArchiveTest.dbo.Event out D:\NOBACKUP\UseOnce\EventChar.dat -T -c 
218977 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) 
Total : 1654 Average : (132392.38 rows per sec.) 
sql-server replication
  • 2 个回答
  • 4041 Views
Martin Hope
reticentKoala
Asked: 2013-06-29 00:23:54 +0800 CST

使用阻塞进程报告诊断阻塞问题

  • 2

我有一个由于超时而关闭的应用程序。在这些时间里,我们看到保存 ASP 会话状态的数据库的响应时间大幅增加。

为了诊断我使用的问题SP_CONFIGURE'blocked process threshold',15并运行跟踪以捕获任何被触发的事件。在下一次事件期间,跟踪捕获会话状态数据库中的一些阻塞事件。

我已经确定了主要拦截器,并且可以看到它已暂停并等待。

<blocked-process-report>
    <blocked-process>
        <process id="process53fb4c8" 
                 taskpriority="0" logused="0" 
                 waitresource="KEY: 10:72057594039238656 (594b17b7493c)" waittime="20631"
                 ownerId="9710782702" transactionname="UPDATE" 
                 lasttranstarted="2013-06-27T17:29:38.130" XDES="0xc429df950" lockMode="U" 
                 schedulerid="14" kpid="6912" status="suspended" spid="359" sbid="0" ecid="0" 
                 priority="0" trancount="2" lastbatchstarted="2013-06-27T17:29:38.130"
                 lastbatchcompleted="2013-06-27T17:29:38.107" 
                 clientapp=".Net SqlClient Data Provider" hostname="WEB03" hostpid="7520" 
                 loginname="State" isolationlevel="read committed (2)" xactid="9710782702" 
                 currentdb="10" lockTimeout="4294967295" 
                 clientoption1="536870944" clientoption2="128056">
            <executionStack>
                <frame line="18" stmtstart="1114" stmtend="4494" 
                       sqlhandle="0x03000a00210f020741a1be0058a000000100000000000000"/>
            </executionStack>
            <inputbuf>
                Proc [Database Id = 10 Object Id = 117575457]
            </inputbuf>
        </process>
    </blocked-process>
    <blocking-process>
        <process status="suspended" waittime="1046" spid="217" sbid="0" ecid="0" 
                 priority="0" trancount="1" lastbatchstarted="2013-06-27T17:29:29.113" 
                 lastbatchcompleted="2013-06-27T17:29:29.010" 
                 clientapp=".Net SqlClient Data Provider" hostname="WEB02" hostpid="6236" 
                 loginname="CState" isolationlevel="read committed (2)" xactid="9710776428" 
                 currentdb="10" lockTimeout="4294967295" clientoption1="536870944" 
                 clientoption2="128056">
            <executionStack>
                <frame line="18" stmtstart="1114" stmtend="4494" 
                       sqlhandle="0x03000a00210f020741a1be0058a000000100000000000000"/>
            </executionStack>
            <inputbuf>
                Proc [Database Id = 10 Object Id = 117575457]
            </inputbuf>
        </process>
    </blocking-process>
</blocked-process-report>

我的问题是

  1. 时间单位是waittime="1046"什么?
  2. 等待什么资源?
  3. 然后去哪儿?
sql-server locking
  • 1 个回答
  • 5559 Views
Martin Hope
reticentKoala
Asked: 2013-03-28 08:28:54 +0800 CST

以编程方式查找无法在线重建的索引

  • 5

我正在使用 T-SQL 自动重建和重组索引。我遇到了无法在线重建的索引问题。这主要是因为包含了 ntext/nvarchar 列。

有没有办法以编程方式将它们标识为该语句的一部分?对 WHERE 谓词的一种补充

SELECT 
--TOP 20
OBJECT_NAME(IPS.OBJECT_ID) AS [TableName], avg_fragmentation_in_percent, SI.name         [IndexName],  
schema_name(ST.schema_id) AS [SchemaName], 0 AS IsProcessed 
INTO #FramentedTableList 
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL) IPS 
JOIN sys.tables ST WITH (nolock) ON IPS.OBJECT_ID = ST.OBJECT_ID 
JOIN sys.indexes SI WITH (nolock) ON IPS.OBJECT_ID = SI.OBJECT_ID AND IPS.index_id =   SI.index_id 
WHERE ST.is_ms_shipped = 0 AND SI.name IS NOT NULL 
AND avg_fragmentation_in_percent >= CONVERT(DECIMAL,   @FragmentationThresholdForReorganizeTableLowerLimit) 
ORDER BY avg_fragmentation_in_percent DESC 
sql-server index
  • 3 个回答
  • 2465 Views
Martin Hope
reticentKoala
Asked: 2013-02-20 06:41:18 +0800 CST

查询通知和连接选项

  • 0

我正在调查查询通知的问题。平台为 SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 标准版。

.NET 错误显示从 SqlNotificationInfo 枚举 ( http://msdn.microsoft.com/en-gb/library/system.data.sqlclient.sqlnotificationinfo(v=vs.80).aspx ) 报告的问题为:事件原因:隔离.

在跟踪期间,我注意到 Broker 对话之前的审核登录事件显示:

 -- network protocol: TCP/IP
    set quoted_identifier on
    set arithabort off
    set numeric_roundabort off
    set ansi_warnings on
    set ansi_padding on
    set ansi_nulls on
    set concat_null_yields_null on
    set cursor_close_on_commit off
    set implicit_transactions off
    set language us_english
    set dateformat mdy
    set datefirst 7
    set transaction isolation level read uncommitted

因此,我的工作理论是不支持用于对话的事务隔离级别。但是这个集合在哪里,我该如何改变它?

我在这里读到过类似的问题:

http://www.roelvanlisdonk.nl/?p=3144 和

http://www.sqlskills.com/blogs/bobb/watch-the-sqlnotificationinfo-for-query-notifications/

sql-server sql-server-2008
  • 1 个回答
  • 3156 Views
Martin Hope
reticentKoala
Asked: 2012-12-15 07:20:09 +0800 CST

执行计划中未显示非聚集索引更新[重复]

  • 4
这个问题在这里已经有了答案:
9 年前关闭。

可能重复:
非聚集索引插入

我正在尝试计算在特定表上使用非聚集索引的成本,但我没有在插入的执行计划中看到任何维护成本。

该表如下所示:

    CREATE TABLE [dbo].[ASPStateTempSessions](
    [SessionId] [nvarchar](88) NOT NULL,
    [Created] [datetime] NOT NULL,
    [Expires] [datetime] NOT NULL,
    [LockDate] [datetime] NOT NULL,
    [LockDateLocal] [datetime] NOT NULL,
    [LockCookie] [int] NOT NULL,
    [Timeout] [int] NOT NULL,
    [Locked] [bit] NOT NULL,
    [SessionItemShort] [varbinary](7000) NULL,
    [SessionItemLong] [image] NULL,
    [Flags] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [SessionId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[ASPStateTempSessions] ADD  DEFAULT (getutcdate()) FOR [Created]
GO

ALTER TABLE [dbo].[ASPStateTempSessions] ADD  DEFAULT ((0)) FOR [Flags]
GO

除了 [SessionID] 上的聚集索引外,它还具有以下非聚集索引

/****** Object:  Index [Index_Expires]    Script Date: 12/14/2012 10:13:58 ******/
CREATE NONCLUSTERED INDEX [Index_Expires] ON [dbo].[ASPStateTempSessions] 
(
    [Expires] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

但是当我为以下运行执行计划时,它会更新具有非聚集索引的列:

UPDATE [ASPState].dbo.ASPStateTempSessions
            SET Expires = DATEADD(n, Timeout, GETUTCDATE())
            WHERE SessionId = '32gghltsuoesnvlzbehchp2m2014c0f1'
            RETURN 0 

我在执行计划中没有看到任何成本提及:

在此处输入图像描述

平时看不到吗?如何计算写入操作中该索引的成本?

sql-server index
  • 1 个回答
  • 1423 Views
Martin Hope
reticentKoala
Asked: 2012-11-01 02:03:48 +0800 CST

在 64 位 Windows/IIS 上安装 32 位 SSRS

  • 1

我继承了在 Windows Server 2008 R2 64 位上运行 SQL Server 2005 Standard 32 位的情况。

当我开始安装 SSRS 组件时,我被警告“无法找到 Microsoft Internet 信息服务 (IIS) 的 ASP.Net 版本注册”。

在 IIS 7 及以上版本中,每个应用程序池都可以在 32 位模式下运行。如果我将所有应用程序池更改为 32 位模式,这会解决问题吗?

是更好的替代解决方案吗?

提前致谢。

sql-server-2005 ssrs
  • 1 个回答
  • 1923 Views
Martin Hope
reticentKoala
Asked: 2012-10-12 03:14:26 +0800 CST

枚举 SQL Server 可用的驱动器

  • 4

我正在尝试找出一种方法来列出特定 SQL Server 实例“知道”的驱动器,并了解该过程。

我可以运行EXEC master..xp_fixeddrives,它给了我一个驱动器列表,但是当我查看 GUI 时(例如,数据库 | 恢复数据库 | 从设备 | 添加),可用驱动器列表要少得多。

SQL Server 通过什么过程变得“知道”驱动器,是否有任何方法可以有问题地确定它知道的驱动器?

提前致谢!

sql-server permissions
  • 2 个回答
  • 1428 Views
Martin Hope
reticentKoala
Asked: 2012-10-06 02:30:48 +0800 CST

在 SQL Server 中收集有关高 CPU 条件的性能信息

  • 2

我有一个 SQL Server 集群,它经常在工作时间之外达到 100% CPU。当实际情况发生时,我想收集一些信息以帮助进行故障排除。

例如,我正在考虑从 sys.dm_exec_requests 收集信息。

问题:如何根据 CPU 使用情况触发此信息收集

例如:当 CPU > 95% 时,将 sys.dm_exec_requests 的结果插入表中

非常欢迎对我应该收集的任何其他内容提出建议!

看来我可以通过警报来做到这一点,但我需要更好地理解计数器,因为我的示例没有触发,尽管 CPU >5%

USE [msdb]
GO
EXEC msdb.dbo.sp_update_alert @name=N'My Test CPU Alert', 
    @message_id=0, 
    @severity=0, 
    @enabled=1, 
    @delay_between_responses=0, 
    @include_event_description_in=0, 
    @database_name=N'', 
    @notification_message=N'', 
    @event_description_keyword=N'', 
    @performance_condition=N'Resource Pool Stats|CPU usage %|default|=|5', 
    @wmi_namespace=N'', 
    @wmi_query=N'', 
    @job_id=N'00000000-0000-0000-0000-000000000000'
GO    
sql-server monitoring
  • 1 个回答
  • 2769 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve