小编Eri*_*elp的帖子

如何实现最大属性数未知的实体?

我正在设计一个棒球模拟程序,但在设计 boxscore 模式时遇到了问题。我的问题是我想跟踪每局得分的次数。我在实际程序中这样做的方法是使用一个动态数组,该数组随着每局比赛而增长。

对于那些不熟悉棒球比赛的人来说,比赛通常是九局,除非比赛在第 9 局结束时仍然打平。因此,棒球比赛的长度不确定,这意味着我不能将数据库设计为每局得分只有 9 列(技术上是 18(9 局 * 2 队)。我的一个想法是序列化数组并将其编码为 Base64,然后再将其存储在数据库中。但是,我不知道这是否是一种很好的技术,我想知道是否有人有更好的主意。

如果重要,我正在开发的数据库是 PostgreSQL。

任何建议都非常感谢!谢谢!

schema postgresql database-design

12
推荐指数
1
解决办法
501
查看次数

在 SQL Server 中找出多少记录没有正确电话号码的最佳方法是什么?

我有一个领域,人们历史上可以用来自由提供价值。我需要识别没有适当值的记录,以便我可以清理它们。

为此,我一直在 SSIS 中四处寻找。我的倾向是在某些 C# 代码中使用带有正则表达式的脚本组件,然后进行重定向。不过,我想知道 SSIS 中是否有一种方法可以在不求助于 C# 的情况下做到这一点。

我没有太多运气找到一种方法来找出有多少记录没有合适的电话号码。

sql-server-2008 sql-server query

11
推荐指数
1
解决办法
272
查看次数

可以同时运行两个 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
查看次数

我的功能是不确定的吗

我有两个函数:fn_Without_Paramfn_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
查看次数

为什么这个实体框架查询在 MySQL 中表现如此糟糕?

让我给你一些设置。我们在 MySQL 5.1 上有一个 InnoDB 表,有近 2000 万条记录,没有外键,以及我们所做的查询的适当索引。我们正在为 .NET Entity Framework 使用最新的 6.3.5 MySQL 版本。通常我们习惯于处理 SQL Server 和实体框架,但在这个项目中我们决定尝试一下 MySQL。

我对这个问题有一些理论,但让我先做代码设置

EF LINQ 查询

var failsForAcct1001 = db.Failures.Where(x => x.AccountId == 1001);
/* farther down and later on in the code */
return failsForAcct1001.OrderBy(x => x.FailureId).Take(50);
Run Code Online (Sandbox Code Playgroud)

生成的 MySQL 代码

请忽略列名,它们不是理解问题所必需的

select
    External1.FailureId,
    External1.col2,
    External1.col3,
from (select
          Inner1.FailureId,
          Inner1.col2,
          Inner1.col3,
      from Failures Inner1
      where External1.AccountId = 1001
    ) External1
order by External1.FailureId
limit 50
Run Code Online (Sandbox Code Playgroud)

生成的这个 SQL 与 SQL Server 中发生的情况非常相似,SQL 处理它没有问题。这不仅仅是一个实体框架问题,当我接受这个查询并在 MySQL …

mysql performance orm entity-framework

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

帮助解决集群问题:[sqsrvres] ODBC sqldriverconnect failed

我有一个 2 节点集群(NODE-A 和 NODE-B),它们之间分布着 2 个 SQL 实例。INST1 更喜欢 NODE-A,INST2 更喜欢 NODE-B。INST1 开始产生错误,然后故障转移到 NODE-B。在记录“恢复完成”后,将 INST1 迁移回节点 A 会生成连接错误。信息。

赢得 2008 R2 Ent。
SQL 2008 R2 Ent。

第一次失败后事件日志中的错误:

[sqsrvres] CheckQueryProcessorAlive: sqlexecdirect failed
[sqsrvres] printODBCError: sqlstate = HYT00; native error = 0; message = [Microsoft][SQL Server Native Client 10.0]Query timeout expired
[sqsrvres] OnlineThread: QP is not online.
[sqsrvres] printODBCError: sqlstate = 08S01; native error = 0; message = [Microsoft][SQL Server Native Client 10.0]The connection is no longer usable because the server …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 clustering

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

NHibernate 如何处理执行计划?

我从播客中听说没有 ORM 可以很好地解决执行计划重用问题。它会导致执行计划缓存增加,从而影响性能。

  • NHibernate 如何处理执行计划?
  • 执行计划是否在 NHibernate 中重用?

sql-server orm execution-plan

4
推荐指数
2
解决办法
1585
查看次数