Realizando SELECT no SQL Server + SharePoint Solution

Opá que post é esse, isso não é nada aconselhável… Muitos devem estar falando isso, mas isso necessidade surgiu desse post aqui -> Problemas com a proc_ListUrls. Da uma lidinha nele vocês entenderam o problema que tive, e um problema da biblioteca Microsoft.SharePoint, ela funciona perfeitamente para uma Library ou List que possua poucos itens, mas no meus caso eram cerca 1,5 mi, só tive problemas e dor de cabeça, dai então realizei querys diretamente no banco, e ainda tive que criar novos índices, pois os criados não estavam performando nada, lógico que tive a ajuda de um DBA, pois não são especialista em SQL Server.

Mas vamos lá, você ao tentar criar um ConnectionString em um projeto SharePoint, pode ser um Projeto App, ou uma Solution, terá problemas ao tentar se conectar a base de dados do SharePoint.

Mas usando o método que criei isso não será o problema.

Da uma olhadinha:

public static SqlDataReader SelectTo(SqlConnection connection)
        {
            SqlDataReader reader = null;
            SPSecurity.RunWithElevatedPrivileges(delegate ()
            {
                using (SPSite ElevatedsiteColl = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb())
                    {
                        try
                        {
                          
                            connection.Open();
                            SqlCommand cmdSelect = new SqlCommand(procGetItens, connection);
                            cmdSelect.CommandType = CommandType.StoredProcedure;
                            reader = cmdSelect.ExecuteReader();
                        }
                        catch (Exception ex)
                        {
                            reader = null;
                        }
                    }
                }
            });
            return reader;
        }

Realizando queries diretamente na base de dados consegui performar muito minha solução, antes o tempo para retorna uma busca era de 48 seg. com essa customização reduzi para 2 seg. é um ganho considerável.

Esse feature já esta no ar e o feedback dos usuários esta sendo muito positivo.

Abraços! Achei justo compartilhar esse case com vocês.