小编alw*_*ing的帖子

如何在插入uniqueidentifier主键列时观察性能开销?

正如之前已多次讨论并且是已知事实 - 在sql server中的uniqueidentifier主键列上具有聚簇索引将影响性能.

我想要做的是通过发布插入和测量某些指标来观察这个问题.我有2个表独特标识PK; 一个以'newid()'作为默认值,另一个以'newsequentialid()'作为默认值.我计划在每个行中插入大约一百万行并观察INSERT性能.

我应该特别询问什么?如何最好地观察在随机GUID上使用顺序GUID的性能增益?是否有某些系统视图,存储过程提供有关索引页面拆分和/或其他相关信息的统计信息?

sql-server indexing performance guid clustered-index

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

什么是准备好的陈述?

关系数据库中的准备语句是什么?他们如何帮助我何时考虑使用它们?

database sql-server relational-database

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

GROUPBY的COUNT的DAX表达式

我是PowerBI的新手并编写DAX表达式.

我有一个带有不同值的文本列的表.我想要做的是获取每个不同值的计数.使用此SQL很容易实现,但我无法获得正确的DAX表达式.

select [value],count(*) as TagCount from Tags
group by [value]
order by TagCount desc
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

sql group-by dax powerbi

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

持久功能中只有扇出(忘了)

我有一个具有2个功能和一个存储队列的现有功能应用程序。F1由服务总线主题中的消息触发。对于收到的每个味精,F1计算一些子任务(T1,T2,...),这些子任务必须以不同的延迟量执行。例如-T1将在3分钟后触发,T2将在5分钟后触发,依此类推。F1将消息发布到具有适当可见性超时(以模拟延迟)的存储队列中,并且只要队列中可见消息,就会触发F2。一切正常。

我现在想将此应用程序迁移为使用“耐用功能”。F1现在仅启动协调器。协调器代码如下:

    public static async Task Orchestrator([OrchestrationTrigger] DurableOrchestrationContext context, TraceWriter log)
    {
        var results = await context.CallActivityAsync<List<TaskInfo>>("CalculateTasks", "someinput");
        List<Task> tasks = new List<Task>();
        foreach (var value in results)
        {
            var pnTask = context.CallActivityAsync("PerformSubTask", value);
            tasks.Add(pnTask);
        }

        //dont't await as we want to fire and forget. No fan-in!
        //await Task.WhenAll(tasks);
    }

    [FunctionName("PerformSubTask")]
    public async static Task Run([ActivityTrigger]TaskInfo info, TraceWriter log)
    {
         TimeSpan timeDifference = DateTime.UtcNow - info.Origin.ToUniversalTime();
         TimeSpan delay = TimeSpan.FromSeconds(info.DelayInSeconds);
         var actualDelay = timeDifference > delay ? TimeSpan.Zero : delay …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-functions serverless azure-durable-functions

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

方法编写模式

我最近注意到以下代码基本上定义了一个类方法

public Func<string, string> SampleMethod = inputParam =>
{
    return inputParam.ToUpper();
};
Run Code Online (Sandbox Code Playgroud)

这与以老式方式进行相同

public string SampleMethod(string inputParam ) 
{
    return inputParam.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)

我的问题 - 为什么我更喜欢第一个?我的眼睛可能更训练,更快地理解第二种风格.我发现它类似于SMS术语和普通旧英语之间的区别.

c# delegates

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

使用自定义转换器从流中反序列化 Json

我正在反序列化一个大型 JSON 片段,该片段作为从对 REST 端点的请求的响应正文获得。

我使用下面的代码

var serializer = new JsonSerializer();
var sr = new StreamReader(responseStream))
var jsonTextReader = new JsonTextReader(sr))
{
    return serializer.Deserialize<ResultItem>(jsonTextReader);
}
Run Code Online (Sandbox Code Playgroud)

我需要在构造每个 ResultItem 时为其注入一些“元数据”。为了实现这一点,我编写了一个自定义转换器,如下所示

 public class ResultItemConverter : CustomCreationConverter<ResultItem>
{
    private Metadata typeMetadata;

    public ResultItemConverter(Metadata typeMetadata)
    {
        this.typeMetadata = typeMetadata;
    }

    public override ResultItem Create(Type objectType)
    {
        return new ResultItem(this.typeMetadata);
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我看不出有什么办法可以将此转换器传递给反序列化方法!找到的所有示例都使用“JsonConvert.DeserializeObject”方法,该方法允许指定转换器。

我的问题 -

  • 如果我需要将一些附加信息传递给正在反序列化的对象的构造函数,我的自定义转换器方法是否正确?
  • 如何使用我的自定义转换器和流进行反序列化?我无法将流序列化为字符串;这会导致OutOfMemoryException

c# json.net deserialization json-deserialization

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

如何获取Oracle用户有权访问的模式列表

在Oracle中,我可以将我的架构的权限授予另一个用户,以便其他用户可以访问我的架构(以及我的架构中的对象).

如何使用ADO.NET(MS或Oracle的提供程序)以编程方式获取特定用户可以访问的模式列表?

oracle ado.net schema

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