• Какую БД выбрать для разработки программы?

    @tiqq
    Если C# и Windows, то легче и удобнее всего MS SQL Server использовать, под него вся винда, студия и язык заточены, все описано и разжевано. Что касается объемов данных и тд - вряд ли Вы будете иметь дело с такими объемами данных, где SQL Server будет проседать в чем-то. На сегодняшний день для подавляющего большинства проектов нет критической разницы какую СУБД использовать, только для высоконагруженных проектов это актуально. Так что берите MS SQL Server просто потому что интеграция с C# и .NET займет в разы меньше времени и будет больше удобства.
    Ответ написан
    Комментировать
  • Как остановить долгий SQL-запрос?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    не надо ничего делать. И не надо его пробовать перезагрузить. В этот момент база занимается безопасным освобождением ресурсов, откатом транзакций и другой неведомой гадостью. Не так чихнете и привет неконсистентные данные в неизвестной точке + битые таблицы
    Ответ написан
    2 комментария
  • Как уменьшить время обработки запроса?

    ApeCoder
    @ApeCoder
    t.external_uids.exist( 'external_uids/external_uid/uid[.=(.......) = 1 похоже на xpath - вместо использования hash join bkили типа того происходит вероятно дорогой лукап по каждой записи. Надо переписать данные в обычную таблицу и использовать ее.

    Приведите план запроса, пожалуйста.
    Ответ написан
    Комментировать
  • Почему говорят, что C# не подходит для WEB?

    Griboks
    @Griboks Куратор тега C#
    Отлично подходит, если руки из того места растут.
    Ответ написан
    Комментировать
  • C# В чем может быть причина неправильной работы временной задержки в многопотоке?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Скрип будет выполняться дольше, у вас спит от в зависимости от итерации.
    А итераций 30. В разнобой потому что итерации запускаются не последовательно.
    Прогоните вот этот скрипт в LinqPad:

    var listt = new List<string>();
    System.Threading.Tasks.Parallel.For(0, 30, (iter,state) => {
      System.Threading.Thread.Sleep(iter*500);
      iter.Dump("Iter");
      lock(ListSyncer)
      {
        listt.Add(iter.ToString());
      }
    });


    P.S. А потом там же прогоните вот это:

    static readonly object ListSyncer = new object();
    
    IEnumerable<int> Range(int fromInclusive, int toExclusive)
    {
      for (var i = fromInclusive; i < toExclusive; i++) yield return i;
    }
    
    void Main()
    {
    	var listt = new List<string>();
    	var range = Range(0, 30);
    System.Threading.Tasks.Parallel.ForEach(range, (iter,state) => {
      System.Threading.Thread.Sleep(iter*500);
      iter.Dump("Iter");
      lock(listt) {
      listt.Add(iter.ToString());
      }
    });
    
    listt.Dump();
    
    }
    
    // Define other methods and classes here
    Ответ написан
    3 комментария
  • Как правильно передать массив как параметр в SQL запрос?

    @Dronablo
    Oracle performance geek
    Не самая новая статья, но тем не менее: Тесты методов передачи списковых переменных в хран....
    Ответ написан
    Комментировать
  • Как увидеть запрос который был осуществлен в MS SQL 2008?

    petermzg
    @petermzg
    Самый лучший программист
    SQL Server Profiler -> New Trace с фильтром
    Ответ написан
    Комментировать
  • Почему падает демон Sphinx?

    opium
    @opium
    Просто люблю качественно работать
    Посмотрите dmesg на сервере , скорее всего кончается память и оомкиллер убивает сфинкса
    Ответ написан
    Комментировать
  • Почему yii2-sphinx не находит столбцы в индексе sphinx?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    1 по рукам, то что хотите отдать в выдачи нужно указать в source
    sql_field_string = text
    sql_attr_uint = user_id
    sql_attr_json = personal_json
    sql_attr_timestamp = created_at

    2 Используйте наследование
    source config_mysite
    {
    	type			= mysql
    	sql_host		= localhost
    	sql_user		= root
    	sql_pass		= mysql
    	sql_db			= new_db
    	sql_port		= 3306
    
    	sql_query_pre = SET NAMES utf8
        sql_query_pre = SET CHARACTER SET utf8
    }
    
    source mysite_selposts :config_mysite
    {
    	sql_query = \
    SELECT `id`, `text` FROM sel_posts  
    
        sql_field_string = text
    }

    3 зарегистрированные слова которые вы используете нужно оборачивать в кавычки `text`
    Ответ написан
    Комментировать
  • Разве StringWriter унаследован от Stream?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Метод Serialize перегружен и, помимо прочего, может принимать TextWriter, от которого наследуется StringWriter.
    Ответ написан
    Комментировать
  • Как сделать множественные or/and в sphinx?

    @neol
    SELECT id, ((`id` = 1 and `category` = 2) OR (`id` = 2 and `category` = 3)) AS cond 
    WHERE cond > 0

    habrahabr.ru/post/195918
    Ответ написан
    2 комментария
  • Почему C# игнорирует настройки прокси через HttpWebRequest?

    @IPv4
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    WebProxy proxyObject = new WebProxy("127.0.0.1", 8080);
    req.Proxy = proxyObject;
    Ответ написан
    Комментировать
  • Получаю xml по url, как сохранить содержимое в новый xml файл, только чтобы структура не нарушилась?

    @mayorovp
    По первому варианту - что означает "нарушается структура"? Не должна она нарушаться при посимвольном копировании. Однако, тут возможны проблемы с кодировками. Нужную кодировку надо определять либо по ContentType - либо по декларации xml.

    По второму варианту - разумеется, это и не должно работать. Прочитайте в документации, что делает ReadString.

    --

    Теперь как надо сохранять xml. Вариант первый - просто побайтово. Используйте stream напрямую, не оборачивая его в StreamReader - а для записи используйте FileStream.

    Вариант второй - загрузить поток в XmlDocument или XDocument на выбор, а потом сохранить.
    Ответ написан
    Комментировать
  • Почему в результате выполнения программы j=0 ?

    Результат посфиксного икремента - значение аргумента до прибавления 1
    То есть код j = j++ можно представить так
    int tmp = j;
    j = j + 1;
    j = temp;


    Если посмотреть IL то в j = j++ будет такой код
    IL_0006: ldloc.0 // В стек кладем значение j (оно у нас == 0)
    IL_0007: dup     // Дублируем в стеке значение j  
    IL_0008: ldc.i4.1 // Кладем второй аргумент инкремента (он == 1)
    IL_0009: add      // Складываем два верних значения, результат кладем в стек
    IL_000a: stloc.0  // Сохраняем в j результат сложения
    IL_000b: stloc.0  // Сохраняем в j 0, который получился при dup


    Я нарисовал, что получается в стеке. Тут интересен опкод dup, который как раз делает int tmp = j;

    d278f75397094999b1cb5f60e8fe6a6d.png
    Ответ написан
    Комментировать
  • Как выполнить поиск по подгруппе?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Не всегда рабочий вариант:
    select * from pc group by inv_number having date=MAX(date)

    UPD:
    Всегда рабочий вариант:
    SELECT g.* from pc g 
    INNER JOIN (
    SELECT inv_number, MAX(date) as date FROM pc 
    GROUP BY inv_number) 
    AS s USING (inv_number, date)
    Ответ написан
    2 комментария
  • Как сделать запрос SQL?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    ИМХО, у @alexclear переусложнено. Можно проще:

    SELECT a.* FROM Apartment a
      LEFT JOIN Apartment_Dates ad
        ON ad.apartment_id=a.id AND ? BETWEEN ad.arrival_time AND ad.departure_time
      WHERE ad.id IS NULL

    Что касается решения @Serhioromano, то в MySQL есть такая неприятная особенность: конструкция IN (SELECT ...) вычисляется для каждой строки выбираемой таблицы. Т.е. если в таблице Apartment 1000 записей, то (SELECT FROM Apartment_Dates) при выполнении запроса будет вычислено 1000 раз. Понятно, что работает это намного медленнее, чем JOIN и exists().
    Ответ написан
    5 комментариев
  • Как, когда и нужно ли вообще закрывать connection к базе в singleton классе?

    @gleb_kudr
    В общем случае 1. Открытие коннекта - достаточно затратная процедура чтобы делать ее на каждый чих. Можете сами измерить скорость/нагрузку в тесте с открытием одного коннекта или множества коннектов.
    Ответ написан
    Комментировать
  • C# и странная работа regexp?

    newross
    @newross
    Product owner
    Я просто процитирую Stackoverflow
    You can't parse [X]HTML with regex. Because HTML can't be parsed by regex. Regex is not a tool that can be used to correctly parse HTML. As I have answered in HTML-and-regex questions here so many times before, the use of regex will not allow you to consume HTML. Regular expressions are a tool that is insufficiently sophisticated to understand the constructs employed by HTML. HTML is not a regular language and hence cannot be parsed by regular expressions. Regex queries are not equipped to break down HTML into its meaningful parts. so many times but it is not getting to me. Even enhanced irregular regular expressions as used by Perl are not up to the task of parsing HTML. You will never make me crack. HTML is a language of sufficient complexity that it cannot be parsed by regular expressions. Even Jon Skeet cannot parse HTML using regular expressions. Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The cannot hold it is too late. The force of regex and HTML together in the same conceptual space will destroy your mind like so much watery putty. If you parse HTML with regex you are giving in to Them and their blasphemous ways which doom us all to inhuman toil for the One whose Name cannot be expressed in the Basic Multilingual Plane, he comes. HTML-plus-regexp will liquify the n​erves of the sentient whilst you observe, your psyche withering in the onslaught of horror. Rege̿̔̉x-based HTML parsers are the cancer that is killing StackOverflow it is too late it is too late we cannot be saved the trangession of a chi͡ld ensures regex will consume all living tissue (except for HTML which it cannot, as previously prophesied) dear lord help us how can anyone survive this scourge using regex to parse HTML has doomed humanity to an eternity of dread torture and security holes using regex as a tool to process HTML establishes a breach between this world and the dread realm of c͒ͪo͛ͫrrupt entities (like SGML entities, but more corrupt) a mere glimpse of the world of reg​ex parsers for HTML will ins​tantly transport a programmer's consciousness into a world of ceaseless screaming, he comes, the pestilent slithy regex-infection wil​l devour your HT​ML parser, application and existence for all time like Visual Basic only worse he comes he comes do not fi​ght he com̡e̶s, ̕h̵i​s un̨ho͞ly radiańcé destro҉ying all enli̍̈́̂̈́ghtenment, HTML tags lea͠ki̧n͘g fr̶ǫm ̡yo​͟ur eye͢s̸ ̛l̕ik͏e liq​uid pain, the song of re̸gular exp​ression parsing will exti​nguish the voices of mor​tal man from the sp​here I can see it can you see ̲͚̖͔̙î̩́t̲͎̩̱͔́̋̀ it is beautiful t​he final snuffing of the lie​s of Man ALL IS LOŚ͖̩͇̗̪̏̈́T ALL I​S LOST the pon̷y he comes he c̶̮omes he comes the ich​or permeates all MY FACE MY FACE ᵒh god no NO NOO̼O​O NΘ stop the an​*̶͑̾̾​̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̳̟̍ͫͥͨe̠̅s ͎a̧͈͖r̽̾̈́͒͑e n​ot rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
    Ответ написан
    1 комментарий