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-1673

Gavin's questions

Martin Hope
Gavin
Asked: 2018-01-10 05:56:30 +0800 CST

这组锁是否意味着表锁,如果是,是否可以避免?

  • 1

我对 SQL Server 2008 有一个查询,当使用 sp_whoisactive with get_locks = 1 时,以下锁打开了....

<Object name="my_table" schema_name="dbo">
  <Locks>
    <Lock resource_type="KEY" index_name="pk_mypk" request_mode="X" request_status="GRANT" request_count="1" />
    <Lock resource_type="OBJECT" request_mode="IX" request_status="GRANT" request_count="1" />
    <Lock resource_type="PAGE" page_type="*" index_name="pk_mypk" request_mode="IX" request_status="GRANT" request_count="1" />
  </Locks>
</Object>

我了解密钥和页面锁,但不确定对象是什么。那是表锁吗?如果是这样,为什么还要费心去锁定密钥和页面锁呢?有没有办法弄清楚为什么只接触一小部分行的特定查询会使用表锁,我猜这是锁升级。

sql-server-2008 locking
  • 1 个回答
  • 212 Views
Martin Hope
Gavin
Asked: 2017-07-05 00:56:09 +0800 CST

为什么 SQL Server OPENQUERY 到 Oracle 在 SQL Server 2016 到 2008 上返回不同的列类型

  • 3

我在同一台机器上有两个 SQL Server 实例,一个是 2008 年的,一个是 2016 年的。两个实例都有一个链接服务器连接到同一个 Oracle 12 服务器。

如果我运行以下查询,2008 年将 1.23 作为 VARCHAR 返回,但 2016 年将其作为浮点数返回

SELECT * INTO #tst FROM OPENQUERY(JOHPROD,'SELECT 1.23 FROM dual')
SELECT t.Name,* FROM tempdb.sys.columns c
    INNER JOIN sys.types t ON t.system_type_id = c.system_type_id
WHERE [object_id] = OBJECT_ID(N'tempdb..#tst');

变量类型

在此处输入图像描述

两个实例都指向同一个 Oracle 服务器,并且都使用同一个 Oracle ODBC 驱动程序。

两个链接服务器都有相同的定义......

EXEC master.dbo.sp_addlinkedserver @server = N'ORAPROD', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'ORAPROD'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORAPROD',@useself=N'False',@locallogin=NULL,@rmtuser=N'ORAUSER',@rmtpassword='########'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'collation name', @optvalue=NULL
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORAPROD', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

知道为什么这些会返回不同的类型吗?

sql-server oracle
  • 1 个回答
  • 754 Views
Martin Hope
Gavin
Asked: 2013-01-17 06:43:16 +0800 CST

只读辅助数据库上的锁是否传播到读/写数据库

  • 8

我正在考虑使用 SQL Server 2012 中的 SQL Server 可用性组将主数据库上的报告卸载到通过可用性组保持同步的第二台只读服务器。

我的问题是,当我在只读服务器上运行大型报告时,如果在读/写版本上运行通常会产生大量阻塞,锁是否会从只读服务器传播回读/写服务器?还是锁只保留在只读服务器上,只是导致阻塞等待同步的数据?

尝试查看是否拥有只读服务器可以解决我遇到的一些问题。

sql-server-2012 availability-groups
  • 1 个回答
  • 1471 Views
Martin Hope
Gavin
Asked: 2011-11-15 06:40:24 +0800 CST

UDF 和查询计划缓存

  • 2

我有一个多语句表值 UDF。这会构建一个临时表,然后将其作为结果返回。

第一次执行需要 5 秒,使用相同参数的后续执行需要 1 秒。如果我更改参数,那么第一次需要 5 秒,然后又回到 1 秒。如果我然后将参数更改回第一个参数,它仍然需要一秒钟。

我无法弄清楚是什么导致它在第一次使用新参数时花费更长的时间。每次使用不同的参数时,UDF 是否会编译一个单独的查询计划?我可以在 Profiler 中监视它吗?我可以看到 sp_Recompile 事件,但我不确定 UDF 编译时触发了什么事件。

不幸的是我不能发布代码,但我希望有足够的信息让某人给我一些解释。

sql-server-2008
  • 2 个回答
  • 490 Views
Martin Hope
Gavin
Asked: 2011-09-08 08:39:04 +0800 CST

零执行和零实际行的键查找如何花费时间?

  • 4

我有一个大约需要 10 秒才能运行的查询,我正在尝试对其进行优化。

所有时间都花在键查找上,这很好,但是在这种情况下,如果我将鼠标悬停在实际执行计划中的键查找上,它会说

Expected Rows : 1
Estimated Executions : 3341
Actual Rows : 0
Executions : 0

我知道在这种情况下,统计信息期望索引查找可以找到很好的行,但是由于索引查找中没有返回任何行,为什么键查找需要任何时间?甚至根本不会显示在查询计划中?

sql-server performance
  • 1 个回答
  • 233 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