小编Tom*_*m H的帖子

处理大型数据库

我已经在一个网络项目(asp.net)工作了大约六个月.最终产品即将投入使用.该项目使用SQL Server作为数据库.我们已经做了性能测试与一些大容量的数据,结果表明,当数据过大,性能会下降,如2万行(超时问题,延迟反应变量等).起初我们使用完全normailized数据库,但现在我们把它归部分由于性能问题(以减少联接).首先,这是正确的决定吗?另外,当数据量变得非常大时,可能的解决方案是什么?客户未来会增加多少?

我想进一步补充:

  • 200万行是实体表,解析关系的表有更大的行.
  • 数据+否时性能下降.用户增加
  • 在识别频繁使用的查询之后进行非规范化.
  • 我们还使用了大量的xml列和xquery.这可能是原因吗?
  • 有点偏离主题,我的项目中的一些人说动态SQL查询比存储过程方法更快.他们已经做了某种性能测试来证明他们的观点.我认为情况恰恰相反.一些使用频繁的查询是动态创建的,因为大多数其他查询都封装在存储过程中.

database sql-server performance database-design query-optimization

13
推荐指数
3
解决办法
8614
查看次数

SQL Server 2005:索引大于存储的数据

我创建了1个包含2个文件组的数据库:1个主要索引和1个索引.

  • 主文件组包括1个数据文件(*.mdf):存储所有表
  • 索引文件组包含1个索引文件(*.ndf):存储所有索引

大多数索引都是非聚集索引

使用数据库一小段时间后,数据文件为2GB,但索引文件为12 GB.我不知道我的数据库中发生了什么问题.

我有一些问题:

  1. 如何减小索引文件的大​​小?
  2. 我如何知道索引文件中存储的内容?
  3. 如何跟踪索引文件的所有影响?
  4. 如何限制索引文件的大​​小增长?

sql sql-server sql-server-2005

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

关于SQL Server 2008全文搜索的问题

我已经构建了一个这样的T-SQL查询:

DECLARE @search nvarchar(1000) = 'FORMSOF(INFLECTIONAL,hills) AND FORMSOF(INFLECTIONAL,print) AND FORMSOF(INFLECTIONAL,emergency)'

SELECT * FROM Tickets
WHERE ID IN (
                -- unioned subqueries using CONTAINSTABLE
                            ...
            )
Run Code Online (Sandbox Code Playgroud)

此搜索的GUI将是一个带有单个文本框的aspx页面,用户可以在其中进行搜索.

我计划以某种方式构建搜索词,就像上面的例子(@search).

不过我有些担忧:

  • 示例搜索词是否是包含搜索中所有单词变形的最佳或唯一方式?
  • 我应该分开单词并在C#或T-SQL中构造搜索词.我倾向于倾向于C#进行决策/循环/构建,但我想要你的意见.
  • 由于注入风险,我讨厌动态构建SQL.我怎能防范这个?
  • 我应该使用FREETEXTTABLE吗?有没有办法让FREETEXT找到所有单词而不是任何单词?
  • 一般来说,你还会怎么做?

.net c# sql sql-server full-text-search

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

实体框架4从具有多个模式的模型生成数据库

我正在将EntityFramework 4与POCO类一起使用,但我喜欢将数据库划分为单独的模式.虽然我可以先设计数据库,然后生成模型,一切正常,如果我更新模型并选择从模型生成数据库,它会忽略我的所有模式并生成默认情况下的所有表(或者我在下面设置的任何表)数据库架构名称).

是否可以将实体分开并让模型中的generate数据库使用这些模式?

非常感谢任何帮助.我花了几个小时在谷歌上进行实验,我觉得这不可能,但我想我会检查一下.

c# sql schema entity-framework

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

从头开始构建OLAP解决方案时,我应该考虑什么?

我正在为一家运行基于MS SQL数据库服务器的软件产品的公司工作,多年来我用PHP开发了20-30个非常先进的报告,直接从数据库中获取数据.这非常成功,人们对此很满意.

但它有一些缺点:

  • 对于新的变化,它可能是非常发展的
  • 用户无法对数据进行多少实验 - 它被锁定到硬编码视图
  • 大报告可能会很慢

我正在考虑逐步采用基于OLAP的方法,可以从Excel或某些基于Web的服务查询.但我想以一种在IT环境中引入最少量新复杂性的方式来实现这一点 - 最少量的不同服务,同步工作等!

我在这方面有一些问题:

1)与工作流程相关:

  • 从"黑匣子SQL服务器"到"OLAP准备就绪"的良好发展路线是什么?
  • 应该设置哪些服务器和服务,以及应该编写哪些脚本?
  • 哪些是最难/最关键/最耗时的部分?

2)ETL:

  • 我想最好为他们的数据仓库和生产SQL提供单独的服务器?
  • 这些如何保持同步(推/拉)?使用哪些技术/语言?
  • 对我来说,SSIS看起来过于复杂,而且图形工作流对我来说并不吸引人 - 我宁愿喜欢基于文本的脚本来完成这项工作.这可行吗?
  • 或者仅使用一个源和一个目的地的图形客户端是否有利?

3)发展:

  • 从CLI工具可以有效维护多少(数据集成,分析服务)?
  • 设置是否可以轻松地在生产和开发之间来回切换?

我对任何涵盖其中一部分的答案感到满意 - 即使它是一个MS环境,我也很想知道其他技术的优势.

sql-server olap ssis data-warehouse business-intelligence

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

性能调优SQL - 如何?

一个性能如何调优SQL查询?

  • 可以使用哪些技巧/工具/概念来更改SQL查询的性能?
  • 如何量化收益?
  • 需要注意什么?


可以使用哪些技巧/工具/概念来更改SQL查询的性能?

  • 使用索引?他们如何在实践中工作?
  • 归一化与非归一化数据?什么是性能与设计/维护权衡?
  • 预处理中间表?使用触发器或批处理作业创建?
  • 重构查询以使用临时表,子查询等?
  • 将复杂查询分成多个和UNION结果?
  • 还要别的吗?


绩效如何量化?

  • 读?
  • CPU时间?
  • 不同版本一起运行时的"%Query Cost"?
  • 还要别的吗?


需要注意什么?

  • 是时候制定执行计划了吗?(存储过程与内联查询)
  • 存储过程被迫重新编译
  • 对小数据集进行测试(查询是线性扩展还是平方律等?)
  • 缓存先前运行的结果
  • 优化"正常情况",但伤害"最坏情况"
  • 什么是"参数嗅探"?
  • 还要别的吗?


主持人请注意: 这是一个很大的问题,我应该把它分成多个问题吗?

对响应者的注意: 因为这是一个很大的问题,请参考其他问题/答案/文章,而不是写冗长的解释.

sql performance

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

SQL Group with Order by

这感觉应该有一个基本的解决方案,但我似乎没有得到它.

拿这个查询:

            SELECT Category FROM Article
            GROUP BY Category
Run Code Online (Sandbox Code Playgroud)

我想有效地做到这一点:

            SELECT Category, DatePublished FROM Article 
            GROUP BY Category
            ORDER BY DatePublished DESC
Run Code Online (Sandbox Code Playgroud)

我真的不想选择DatePublished,但它似乎有意义.但这不起作用.

基本上我想通过最新的DatePublished文章订购类别.

sql sql-server

10
推荐指数
2
解决办法
3万
查看次数

C#SQLServer检索结果并以.csv格式放置

我看了一下网站和谷歌,但我似乎无法找到一个很好的解决方案,我正在尝试做什么.

基本上,我有一个客户端服务器应用程序(C#),我向服务器发送一个SQL select语句(连接到SQL Server 2008),并希望以CSV方式将结果返回给客户端.

到目前为止,我有以下内容:

if (sqlDataReader.HasRows)
{
    while(sqlDataReader.Read())
    {
       //not really sure what to put here and if the while should be there!
    }
Run Code Online (Sandbox Code Playgroud)

}

不幸的是,我真的很想将C#与SQL连接起来.我需要有关如何简单地将结果放在csv格式的字符串中的任何提示.列和字段可能会有所不同,所以我不能像在一些网站上看到的那样使用某种东西的方法.我不确定我是否可以理解了!

我非常感谢有关如何解决这个问题的任何提示/要点!

c# sql sql-server client-server resultset

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

构建OCA的工具(偶尔连接的应用程序)

我将构建一个内部的,偶尔连接的应用程序(OCA).你建议我采用什么技术?

这是我的参数:

  1. .NET Shop(3.5sp1)
  2. 代码背后的C#(winform,wpf,silverlight)
  3. SQL Server后端(2005年或可能 2008年待批准)
  4. 独奏开发者
  5. 独奏SQL管理员
  6. 低技术最终用户
  7. 5个分支机构的低带宽
  8. 这是一个LOB应用程序,但不是POS.
  9. 大多数用户都有笔记本电脑,他们带到会员家
  10. 此应用程序的数据存储在5个单独的数据库中,但在一个SQL实例中.

我正在寻找有关选择路径的具体建议.合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?

是Silverlight'离线/退出浏览器应用' 示例在这里,可行吗?

这是我的第一个LARGE商业应用程序,因此欢迎任何经验丰富的评论.


根据要求,这里有一些关于数据类型的附加信息.我的用户是护士和社会工作者,他们去会员家中为他们创建"计划"或"健康评估评论".这些是药物清单或当前"提供者"列表.实现成员目标的步骤或当前/过去诊断的列表.像这样的东西.

还有典型的会员姓名,地址,电话号码等.这主要是一个便于报告的数据存储和检索应用程序.很少"处理"发生,护士和社会工作者在指定成员的团队中工作,所以我通常几乎没有交叉或潜在的数据冲突.护士和SW也负责MCP的不同领域(会员中心计划)


附加问题; 如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?似乎是由于变化跟踪等等......思想?

.net c# sql-server replication occasionallyconnected

9
推荐指数
1
解决办法
4137
查看次数

通用数据库表设计

只是想找出为以下场景设计表的最佳方法:

我的系统中有几个区域(文档,项目,组和客户端),每个区域都可以记录注释.

我的问题是我应该有这样一个表:

CommentID
DocumentID
ProjectID
GroupID
ClientID
etc
Run Code Online (Sandbox Code Playgroud)

只有一个id会有数据,其余的将是NULL,或者我应该有一个单独的CommentType表,并且我的注释表如下:

CommentID
CommentTypeID
ResourceID (this being the id of the project/doc/client)
etc
Run Code Online (Sandbox Code Playgroud)

我的想法是,从索引的角度来看,选项2会更有效.它是否正确?

sql sql-server database-design polymorphic-associations

9
推荐指数
3
解决办法
5222
查看次数