Skip to content

Instantly share code, notes, and snippets.

View afruzan's full-sized avatar
😎
I may be slow to respond.

afruzan afruzan

😎
I may be slow to respond.
View GitHub Profile
@afruzan
afruzan / JS-LINQ.js
Created February 5, 2022 17:06 — forked from DanDiplo/JS-LINQ.js
JavaScript equivalents of some common C# LINQ methods. To help me remember!
// JS array equivalents to C# LINQ methods - by Dan B.
// Here's a simple array of "person" objects
var people = [
{ name: "John", age: 20 },
{ name: "Mary", age: 35 },
{ name: "Arthur", age: 78 },
{ name: "Mike", age: 27 },
{ name: "Judy", age: 42 },
{ name: "Tim", age: 8 }
@afruzan
afruzan / LocalEventBus
Created February 9, 2023 15:48
C# thread safe local Event Bus
using System.Collections.Concurrent;
using System.Linq.Expressions;
using System.Reflection;
namespace Afruzan.Shared.EventBus;
public class LocalEventBus : IEventBus
{
public LocalEventBus()
{
@afruzan
afruzan / pivotize.ts
Last active April 17, 2023 18:08
Convert flat array of items to Pivot Table data in JavaScript
// convert flat array of items to pivot table data
// uses linq.js
import Enumerable from 'linq';
export interface Column {
columnName: string;
sourceField: string;
sourceValue?: string;
isTotal?: boolean;
@afruzan
afruzan / DatabaseCleanupHints.md
Created May 24, 2023 06:36
hints about database cleanup job to delete old records from time-series table

اولا که بهترین روش که ایده خودم هست استفاده از partitioning در دیتابیس هایی که ممکن باشه هست ولی اگر ممکن نبود (مانند sqlite) باید به کارایی دقت زیادی کرد. در این موارد اگر جدول مربوطه فایل های وابسته حجیمی داشته باشه یه راهکار اینه ابتدا از حذف منطقی برای حذف کردن فایل های و تصاویر وابسته استفاده کرد و در فواصل زمانی بیشتر زمانی که کار سیستم سبک تره حذف واقعی انجام داد.

به هر حال برای انجام فرآیند حذف موارد زیر مهم اند:

If your query affects 5000 rows or more in the same table, that table gets locked during the operation. This is standard SQL Server behavior. Basically every DELETE causes a lock on that row and every 5000 row locks on the same table cause a Lock Escalation from row to table.

declare @MoreRowsToDelete bit