小编hoy*_*ter的帖子

将100个Oracle实例合并到一个实例中的智慧

我们的应用程序在网络上运行,主要是一个查询工具,做一些交易.我们托管Oracle数据库.该应用程序始终为每个客户提供不同的Oracle实例.一个客户是支付我们提供我们的服务,该公司的员工,每个客户通常10,000-25,000名员工的公司.我们打算有几百个客户.我们每隔几年就会发布一次主要版本,并且迁移到新版本具有挑战性:我们可能会在客户站点组建一个团队几周,解释新功能并设置驱动数据以适应该客户.

我们正在考虑使用多客户端,将所有客户放在一个大型的"Windows Server 2008服务器"上的单个共享Oracle 11g实例中 - 以降低成本.我想知道这是否可取.

为每个客户提供单独的实例有一些优点.请告诉我这些是假的.我粗略猜测降低重要性:

  • 我们的客户MyCorp和YourCo可以在对架构进行重大更改时单独迁移.(对于多客户端,我们将在一夜之间迁移300多个客户!?!)

  • MyCorp的数据可以轻松备份和(!!!)恢复,而不会影响其他客户.

  • MyCorp的数据与其竞争对手YourCo的数据安全地分开,而不依赖开发人员来获得正确的代码和/或DBA获得正确的配置.

  • 多个实例风险较低,因为一个客户发生灾难(某人意外地将每个人的工资加倍,并且在发薪日后发现错误)不会影响其他客户.一场灾难影响了我们所有的客户(呐喊,新的DBA,突然每个参与者都拥有相同的SSN!?!)可能会让我们的公司陷入困境.

  • 在一台服务器上安装一个实例会出现单点故障,如果飓风摧毁了建筑物,我们的整个客户群就会停止运营.多个服务器上的多个实例允许地理分散:没有灾难会影响我们客户的太大比例,而其他地区的未受影响的服务器可以承担故障服务器的负载.

  • 性能更好,因为数据库较小(约50个表中的10,000对2,000,000行).

  • 如果MyCorp的办公室(大部分)只在一个地区,那么MyCorp的实例可以在地理位置上共存,因此网络延迟不会影响性能.出于同样的原因,我们可以为全球客户提供更好的服务.

  • 在MyCorp想要在内部使用他们的数据库,然后我们可以轻松导出他们的实例,以获得MyCorp他们的数据.

  • 负载平衡更容易,因为实例可以放在不同的服务器上(这适用于Web场).

  • 当需要DEV或QA实例时,克隆实际实例并对数据进行匿名化会更容易,因为数据要少得多.

  • 因为它们足够小,开发人员可以让自己的实例在本地运行,这样他们就可以在机场等待的同时处理代码,而无需解决VPN麻烦.

Q1:单独实例的其他优点是什么?

我们正在考虑更改数据库架构并将所有客户合并到一个Oracle实例中,在一台大型服务器上运行.

以下是多客户端实例方法的优点,最重要的是首先(我的WAG).如果这些是假的,请狙击:

  • 减少DBA的工作量,因为他们只需要维护一个实例而不是数百个实例.较少的DBA工作转化为更便宜,这是我们改变的主要动机.

  • 只需一个实例,DBA就可以更好地优化性能.他们将有时间添加适当的索引并查看我们的SQL.

  • 开发人员更容易调试和增强应用程序,因为只有一个模式和一个应用程序(如果有数百个实例,则可能有数十个模式版本,每个模式版本都有不同版本的应用程序).这也降低了成本.另一种方法是必须启动每个调试会话:(1)该客户运行的是什么版本;(2)让我们努力重新创建相应的开发环境,代码和数据库.(我们需要一个虚拟机,其中包含每个补丁和发布的代码AND数据库实例!)

  • 许可Oracle更便宜,因为它的价格是每台服务器的价格而不管(或者某些东西 - 我对这个主题一无所知).

  • 数据库成为Web会话数据的可行持久存储,因为只有一个实例.

  • 使用一个多客户端实例可以更轻松地进行某些数据库操作,例如在他们朦胧地找到他们(或他们的配偶)可能工作的客户时找到参与者:所有名称都在一个表中.跨客户报告非常简单.

Q2:在一个实例中拥有多个客户端有哪些其他优势?

问题3:您认为哪种方法更好(为什么)?每个客户的实例,还是一个实例中的所有客户?

我担心有一个多客户端实例使迁移几乎不可能,这是一个交易杀手......

...除非有一个妥协的解决方案,比如有两个多客户端实例,旧的和新的.在这种情况下,我们将设计用于查找参与者,报告等的跨实例解决方案,以便客户可以从一个多客户端实例转到下一个实例,而不会出现任何问题.

oracle multiple-instances database-restore

13
推荐指数
1
解决办法
2405
查看次数

WPF开发比传统ASP.NET(Web表单)更快还是更慢

您是否具有ASP.NET和WPF编码经验?如果是这样,如果您愿意分享您的经验,我将不胜感激.

我们估计一个100屏幕的WPF项目.我们的估算方法涉及表征每个屏幕的复杂性.然后,我们根据复杂性和技术为开发时间应用标准编号.标准数字是基于开发人员的,而不是超级明星.

例如,这是一个屏幕:

用户在主网格中选择一行,然后在详细信息中编辑数据并保存更改.Ajax用于填充和保存详细信息而无需回发.数据层已经存在,样式将由其他人处理.任务包括编写一套适当的单元测试; 集成测试是独立的.

我们将此屏幕描述为中等,并为经典ASP.NET(与MVC相对)分配X小时的任务.

我们需要帮助确定WP 应该是什么样的X.

我的问题:

如果屏幕是在WPF中创建的,那么擅长 WPF的人 - 需要X小时,或.7 X还是1.3 X?WPF与经典ASP.NET的相对生产力是多少?

问另一种方式:如果一个任务需要(选择一个数字)10个小时的ASP.NET编码,那么使用WPF需要花费多少小时?5?15?

我们想知道WPF是否(选择一个数字)比ASP.NET提高了50%,因此我们可以提出更低的价格,并相信我们能够在预算范围内完成项目.

[编辑]问另一种方式:这个讨论ASP.Net还是WPF(C#)?有一堆回应.选择的"正确"答案是"选择WPF的原因",第一个原因是"比ASP.NET和jQuery更快更容易开发".

这个答案是真的吗?如何快?

asp.net wpf estimation

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

WPF开发的生产力,有和没有Telerik(例如)

这与半小时前我发布的问题有所不同,WPF开发比传统ASP.NET(Web表单)更快或更慢.

如果我们在我们的WPF项目中使用Telerik(或DevExpress或Infragistics等),我很好奇我们可以合理期望提高生产力的程度.这是一个足够大的项目,我们将有时间选择我们选择的任何库.我们的应用程序将在日历周围具有相当复杂的UI; 否则它很香草味.我们没有非常多的WPF经验.

我知道这取决于,尤其是 有多少控件有用,我们需要多少为我们的应用程序定制它们等等.

如果你能(以某种方式)包含那些依赖关系并得到一些数字,那就太好了.在我的梦里:

我已经完成了大型WPF项目,有或没有第三方控制库(在我的情况下是Infragistics) - 并且使用该库大大增加了我们的工作效率.

或者减半它,无论你的经验.

wpf infragistics devexpress telerik

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