小编Mar*_*ser的帖子

我应该分区/分区我的桌子吗?

案件

  1. 该系统dispositives基本上由形成id, type, name.
  2. 我可以有N个dispositives.
  3. 我有一张桌子来储存log所有的东西dispositives.这是系统中最大的表.(现在计算100英里的记录)
  4. log表有:id_dispositive, date, status.

问题

显然这个巨大的数据导致了性能问题.我必须存储至少两个月的日志值..

今天,我有这样dispositivestype:

TYPE     COUNT
---------------
1         78956  
2         125161
3         13213
4         6112
5         25426
6         12314
7         1241
8         622
Run Code Online (Sandbox Code Playgroud)

我也有一些业务逻辑来提供这个log表.无论如何,这是我的想法:

我的"解决方案"

我正在考虑分区这​​张log桌子.这是问题:

  1. 值得吗?
  2. 我应该按类型分区吗?
  3. 我应该按DATE类型和子分区进行分区吗?
  4. 我可以通过编程方式进行吗?

由于这种类型是动态的,用户可以删除/插入新的.

因此,如果他们删除某些类型,我必须删除该类型的所有日志.好像他们插入了某种类型,我必须注册(存储)该类型的所有日志.

根据Francesco Serra的回答编辑

我正在尝试创建这样的表:

create table log(
       id_dispositive    number,
       type       number,
       date_verification    date,
       status  number
)
partition by range …
Run Code Online (Sandbox Code Playgroud)

database oracle oracle11g

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

如何使用IN作为使用SQL完全匹配?

我有一个监控手机的系统.众所周知,手机可以有一两个SIM卡.众所周知,有不同的运营商.所以我想展示一个包含手机和运营商所有可能组合的过滤器.今天我有一个10k设备的世界.最后,系统显示设备测量值,但用户可以通过电话制造商(苹果,三星,诺基亚等),型号和操作员过滤这些统计数据.

所以我有这个表单,可以显示使用我的设备Universe的所有当前组合.

最后我有这样的过滤器:

<select id="filter" multiple="multiple">
      <optgroup label="Model">
            <option value="1">iPhone</otion>
            <option value="2">Samsung</otion>
            <option value="3">Asus</otion>
      </optgroup>
      <optgroup label="Operator">
            <option value="1">Digicel</otion>
            <option value="2">FLOW</otion>
            <option value="3">Rogers</otion>
            <option value="4">Telus</otion>
            <option value="5">Bell</otion>
            ...
            ...
            <option value="2,3">FLOW,Rogers</otion>
            <option value="2,5">FLOW,Bell</otion>
            <option value="3,1">Rogers,Digicel</otion>
            ...[I don't know all current combinations..this is a dynamic filter]
      </optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)

数据库模型

所以我有主要的设备表(我将只放置"重要"的列):

devices
------------   
id_device (pk) | id_manufacter (fk) | id_model (fk)
------------   
 1 | 1  | 10
 2 | 1  | 13
 3 | …
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

它如何工作每个请求会话模式?

我们正在使用ASP.NET MVC4开发一个项目.在团队的一次会议中,出现了使用Session per request 模式的想法.

我做了一些搜索,并在SO中发现了一些问题 - 一般来说 - 这种模式(如果可能被称为)它表示框架ORM.

一个小例子

//GET Controller/Test

public ActionResult Test()
{
     //open database connection

     var model = new TestViewModel 
                 {
                      Clients = _clientService.GetClients(),
                      Products = _productService.GetProducts()
                 };

     //close database connection
     return View(model);
}
Run Code Online (Sandbox Code Playgroud)

没有每个请求的会话:

//GET Controller/Test

public ActionResult Test()
{
     var model = new TestViewModel 
                 {
                      Clients = _clientService.GetClients(), // Open and close database connection
                      Products = _productService.GetProducts() // Open and close database connection.
                 };
     return View(model);
}
Run Code Online (Sandbox Code Playgroud)

疑惑

  1. 要进行上下文化,每个请求的会话如何工作?
  2. 这是一个好的解决方案吗? …

c# asp.net asp.net-mvc session design-patterns

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

Xampp + IIS在同一台服务器上协同工作

我有一个服务器有2个IP地址.

我在.net(webapi,一个控制台应用程序等)中使用多个应用程序,并使用在apache(w/xampp)上运行的PHP.

我将IIS配置为在默认端口80上运行,xampp使用端口8080.

正如我之前所说,我有两个IP地址和两个域(例如:domain1.com和domain2.com).

我需要将domain1.com.br指向IIS应用程序(这是有效的),但我的php应用程序永远不会到达,因为所有请求都被定向到端口80(iis控制).

  1. 我该怎么做才能解决这个问题?
  2. 我知道我可以将两个ip指向端口80,但是当他从特定域/主机(在这种情况下,domain2.com.br)获得请求时如何告诉IIS,他重定向到端口8080?

apache iis

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

多线程为什么简单的多任务不起作用?

var finalList = new List<string>();
var list = new List<int> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ................. 999999};

var init = 0;
var limitPerThread = 5;

var countDownEvent = new CountdownEvent(list.Count);

for (var i = 0; i < list.Count; i++)
{
    var listToFilter = list.Skip(init).Take(limitPerThread).ToList();
    new Thread(delegate()
                   {
                       Foo(listToFilter);
                       countDownEvent.Signal();
                   }).Start();    
    init += limitPerThread;
}

//wait all to finish
countDownEvent.Wait();


private static void Foo(List<int> listToFilter)
{
    var listDone = Boo(listToFilter);
    lock (Object)
    {
        finalList.AddRange(listDone);
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task multitasking task-parallel-library

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