问题列表 - 第20页

数据转换实现

我正在使用我公司的数据库,为许多外部应用程序提供数据。所以我需要将相同的数据转换成很多动态视图。我可以看到一位前数据库开发人员已经实现了许多长链视图-函数-过程调用序列,以进行所有外部应用程序更常见的转换。我认为,这种架构和如此长的请求(存储过程调用一些函数,然后 funcs 调用一些视图,这个视图基于其他视图等等)是一个性能问题,至少查询优化器没有解决这些问题(请确认我的猜测)。这是好方法吗?它是性能下降的原因吗?如果是,我如何重新实现数据库的对象。此刻,我看到了执行此操作的以下步骤:

  • 分析源数据结构(自己的数据)
  • 分析所有外部系统(数据库必须提供什么格式)
  • 每个外部子系统的单独视图、函数、存储过程(我必须避免长链,对于许多子系统 db 对象,如果它是问题的原因)

谢谢你。

performance sql-server-2008 database-design database-recommendation

5
推荐指数
1
解决办法
119
查看次数

我的功能是不确定的吗

我有两个函数:fn_Without_Param和fn_With_Param

 CREATE FUNCTION [dbo].[fn_Without_Param]
 (
 )
 ...
 INNER JOIN .. ON .. AND SubmitDate = CONVERT( varchar(10), GETUTCDATE(), 101 )
Run Code Online (Sandbox Code Playgroud)

和

/*
     I am requesting it so:
    declare @SubmitDate     datetime
    set @SubmitDate = CONVERT( varchar(10), GETUTCDATE(), 101 )
    select * from [dbo].[fn_With_Param] (@SubmitDate)
*/



CREATE FUNCTION [dbo].[fn_With_Param]
(
    @SubmitDate datetime    
)
...
INNER JOIN .. ON .. AND SubmitDate = @SubmitDate  
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,我有不确定性 (?) 函数(因为 GETUTCDATE)并且我用相同的输入参数调用了第二个函数(CONVERT(varchar(10), GETUTCDATE(), 101 ) - 今天没有小时,分钟,秒,毫秒)。我的函数是不确定的吗?如何检测这一点,也许 sql server 有一些公共标记。为什么第二个函数更慢?

performance sql-server determinism

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

多数据库面向对象代理

你知道是否有一种系统/产品/技术可以将一个或多个关系数据库“包装”到一个面向对象的虚拟数据库中(或者我们可以称之为“多数据库面向对象代理”)?

我来说明一下原理:

多数据库面向对象代理

因此,基本上,中间的粉红色部分(以下称为“对象代理”)将包含业务实体的定义及其到多个关系数据库中数据的映射。应用程序将从对象代理请求或插入/更新/删除数据,这将神奇地与底层关系数据库同步。

那可能吗?这样的系统存在吗?

database-recommendation

5
推荐指数
1
解决办法
668
查看次数

将图像存储在 BLOB 中还是仅存储在 URL 中更好?

可能的重复:
文件 - 在数据库中与否?

我想知道是否有任何充分的理由仍然在数据库中使用 blob 字段。几年前,我使用了一个包含一堆图像的数据库,该数据库非常慢,我看不出有什么好的理由将图像保存在数据库中,所以我将图像取出并存储了文件名反而。

这是明智之举吗?你代替我做什么?

database-tuning architecture

40
推荐指数
7
解决办法
4万
查看次数

SQL Server 从另一个数据库重命名表

SQL Server 中有没有办法重命名另一个数据库中的表?当您在当前数据库中并将数据迁移到 TEMP 表中的另一个数据库,然后重命名该另一个数据库中的 TEMP 表时。我不想使用“USE [database]”,因为数据库名称可能会在不同的服务器上更改。

我在这里先向您的帮助表示感谢!

sql-server-2008

10
推荐指数
1
解决办法
4304
查看次数

可以同时运行两个 DBCC INDEXDEFRAG 命令,每个命令都在不同的表上吗?

我目前正在运行一个脚本,该脚本对 SQL Server 2005 数据库中的每个表执行 DBCC INDEXDEFRAG,一次一个表。由于空间限制和正常运行时间要求,不能使用 DBCC DBREINDEX 代替 INDEXDEFRAG。

我注意到对某些表进行碎片整理需要很长时间。例如,如果我检查“sys.dm_exec_requests”动态管理视图,我可以看到以下 INDEXDEFRAG 当前正在处理 table_id 为 829610394 的表的聚集索引:

DBCC INDEXDEFRAG (0, 829610394, 1)

我知道在碎片整理过程完成之前需要很长时间。撇开当前运行的脚本最终会对所有表进行碎片整理的事实不谈,在当前命令执行时,我在另一个表的聚集索引上手动运行另一个 DBCC INDEXDEFRAG 有什么危害吗?如果我这样做,实际上会同时对两个表进行碎片整理吗?

index sql-server-2005 sql-server dbcc

9
推荐指数
2
解决办法
1918
查看次数

SQL 2008 Web 版“太大”有多大?

对于我们即将托管的应用程序,我需要在 SQL Server 2008 Web 版和 SQL Server 2008 企业版之间进行选择。没有任何“必备”功能:应用程序当前在 SQL Express 上运行,但它会超过 SQL Express 强加的 10GB 最大大小。

我正在查看此比较图表,以及本页“可扩展性和性能”中最重要的表格。随着表变大,诸如“表和索引分区”之类的功能对于保证性能速度至关重要。但是,这需要多大的桌子尺寸?

我应该使用什么策略来确定我的数据库的大小和使用情况是否需要企业版可扩展性和性能功能?

sql-server-2008 sql-server

11
推荐指数
2
解决办法
3062
查看次数

获取时间跨度之间的记录

我想检索时间跨度之间的记录,我所拥有的只是这个指示时间跨度的字符串片段

9:00 AM - 10:00 AM
Run Code Online (Sandbox Code Playgroud)

下面是表架构

CREATE TABLE [dbo].[Samples](
[RID] [int] IDENTITY(1,1) NOT NULL,
[PersonName[nvarchar](20) NOT NULL,
[NOT_AVL_DATE] [datetime] NULL,
[NOT_AVL_FOR] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

简要: Rid 是主键,PersonName 是员工/员工/技术员姓名,NOT_AVL_Date 是员工不可用的日期时间,NOT_AVL_FOR 表示员工不可用的时间跨度。1 - 全天休假 2- 前半天休假 3 - 下半天休假

要求: 给定时间跨度,我想要在该时间跨度内没有休假的员工。有人可以构建一个完整的声明,我的脑袋正在思考这个……谢谢你的帮助

sql-server datatypes

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

找出导致最大网络流量的查询

在生产 SQL 服务器上,我看到数据流量出现间歇性的巨大峰值。高达 200Mbit/s,这会导致 NETWORK IO 等待,从而导致查询超时。如何找出返回大结果集的查询?

sql-server

23
推荐指数
3
解决办法
1万
查看次数

PostgreSQL 能告诉我它使用的是什么配置文件吗?

我正在对配置文件进行一些更改时遇到问题。我认为 PostgreSQL 没有使用我正在修改的那些。有什么方法可以让 postgres(可能是一些环境变量)告诉我在哪里可以找到各种配置文件,包括pg_hba.conf和pg_ident.conf?

postgresql configuration

8
推荐指数
1
解决办法
1950
查看次数